Preheat the oven to 350°F / 175°C. Generously grease three 8-inch / 20cm cake pans, then line them with greased parchment paper.
In a food processor, break up the long strands of shredded coconut by pulsing for about 30 seconds.*
In a stand mixer fitted with the paddle attachment, cream the butter on medium-high speed until creamy and smooth, about 1 minute.
Turn the mixer speed to medium; add the sugar, oil, vanilla, and coconut extract; and beat for about 5 minutes, until the mixture is light in color and about double in volume.
Turn the speed to medium-low and add the eggs and egg yolks, one at a time, mixing each until incorporated before adding the next. Scrape the bowl after each addition.
In a separate bowl, whisk together the flour, baking powder, and salt until well combined.
Add one-third of the flour mixture to the butter mixture and mix just until combined. Add half of the coconut milk, mixing until incorporated. Repeat with another one-third flour, the remaining coconut milk, and then finish with the final one-third flour, scraping the bowl and paddle after each addition. Fold in the shredded coconut.
Pour the batter into the prepared pans and spread evenly using a small offset spatula. Gently tap the pans on the counter several times to release excess air bubbles.
Bake until a tester comes out clean, about 35 minutes. Let the cakes cool completely before removing from the pans. The cake layers can be made a day ahead, wrapped, and refrigerated.