Prepare the Cake Pans: Preheat the oven to 350°F (177°C). Grease three 8-inch round cake pans, line the bottoms with parchment paper rounds, and grease the parchment paper. This helps the cake layers release easily after baking.
Combine the Dry Ingredients: In a medium bowl, whisk together the cake flour, baking powder, baking soda, and salt until evenly mixed. Set aside.
Cream the Butter and Sugar: Using a handheld or stand mixer fitted with a paddle or whisk attachment, beat the softened butter and granulated sugar on medium-high speed for about 2 minutes, until smooth and creamy. Scrape down the sides and bottom of the bowl with a rubber spatula as needed. Add the Wet Ingredients: Beat in the egg whites until combined. Add the sour cream, vanilla extract, and coconut extract, then mix until incorporated. The mixture may appear slightly curdled because of the different ingredient textures and the butter. Scrape down the bowl as necessary. Finish the Cake Batter: Reduce the mixer speed to low and gradually add the dry ingredients and coconut milk. Mix until combined, then add the sweetened shredded coconut. Use a whisk to mix by hand, checking the bottom of the bowl for any remaining butter lumps. The finished batter should be slightly thick. Divide the Batter: Distribute the batter evenly among the three prepared cake pans. If desired, weigh the pans to ensure the layers contain equal amounts of batter.
Bake the Cake Layers: Bake at 350°F (177°C) for 21–24 minutes, or until the cakes are fully baked. Insert a toothpick into the center of a cake; if it comes out clean, the layer is done.
Cool the Cake Layers: Place the pans on a cooling rack and let the cakes cool in the pans for 1 hour. Remove the layers from the pans and transfer them directly to the rack. Allow them to cool completely before frosting and assembling.
Beat the Butter and Cream Cheese: In a large bowl, using a handheld or stand mixer fitted with a paddle or whisk attachment, beat the softened butter and full-fat brick cream cheese on medium speed for about 2 minutes, until creamy and smooth.
Prepare the Coconut Buttercream: With the mixer running on low speed, add the confectioners’ sugar, canned coconut milk, vanilla extract, coconut extract, and salt. Increase the speed to high and beat for 3 minutes. If the frosting is too thin, add more confectioners’ sugar. If it is too thick, add more coconut milk. If it tastes too sweet, mix in an extra pinch of salt. Level the Cake Layers: Once the cakes have cooled completely, use a large serrated knife to trim a thin layer from the top of each cake, creating a flat surface. Discard the trimmings or crumble them over ice cream.
Assemble the First Two Layers: Place one cake layer on a cake stand, turntable, or serving plate. Spread 1 heaping cup of frosting (approximately 250–300 g) evenly over the top. Add the second cake layer and cover its top with another heaping cup of frosting.
Frost the Assembled Cake: Position the third cake layer on top. Spread the remaining frosting over the top and sides of the cake. Use an icing spatula to apply the frosting and a bench scraper to smooth the sides, if desired.
Decorate with Shredded Coconut: Sprinkle the sweetened shredded coconut over the top of the cake and gently press it onto the frosted sides. Work carefully, as some coconut may scatter during decorating.
Chill Before Slicing: Refrigerate the assembled cake for at least 20 minutes before slicing. Chilling helps the layers hold their shape when cut while preserving the cake’s soft, fluffy texture.
Store Leftovers: Cover any leftover cake tightly and refrigerate for up to 5 days.