Preheat the oven to 350°F/177ºC. Prepare three 6-inch (15cm) or two 8-inch (20cm) cake pans by spraying the sides with cooking spray and fitting a parchment paper circle to the bottom of the pan.
Add the sifted cake flour, baking powder, baking soda, and salt into a medium bowl and whisk to combine. Set aside.
In the bowl of your stand mixer fitted with the paddle attachment, beat the butter on high for two minutes until it’s light and creamy. Add the sugar and continue to mix on medium-high for another two minutes, scraping down the bowl and paddle as needed. Turn the mixer to low speed and add the egg whites one at a time, mixing until well combined. Add the sour cream, vanilla extract, and coconut extract and mix for one minute on high. Scrape down the bowl and paddle once more. It will look curdled at this point but don’t worry – it will look like smooth cake batter by the end!
Turn the mixer to low, add in the dry ingredients all at once. When they’re just beginning to combine, add the canned coconut milk in a slow, steady stream. Continue to mix on low until incorporated. Scrape the sides and bottom of the bowl and give it a few stirs by hand to make sure there are no large lumps, then gently fold in the shredded coconut.
Pour the batter evenly into the prepared cake pans and bake for 35-40 minutes. They’re done when they spring back to the touch and a toothpick inserted into the middle comes out clean. Let the cakes cool in the pan for five minutes before turning them out onto a wire rack for an additional few hours of cooling.