Preheat the oven to 350°F (177ºC). Prepare three 6-inch or two 8-inch cake pans by spraying the sides with baking spray and fitting a parchment paper circle to the bottom of each 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 vegetable oil, then 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.
With the mixer in the off position, add in the dry ingredients all at once. Turn the mixer to low speed until the mixture is just beginning to combine, then add the coconut milk in a slow, steady stream. Continue to mix speed 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 between the prepared cake pans and bake for 32-36 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.