Preheat oven to 350°F Grease three 9-inch cake pans and line with parchment paper.
Whisk the cake flour, baking powder, baking soda, and salt together in a medium bowl and set aside.
Using a mixer beat the butter and sugar together on medium speed until smooth. Scrape down the sides as needed. Beat in the egg whites one at a time until combined, then add the sour cream, vanilla extract, and coconut oil. Beat until combined. Mixture will look curdled as a result of the varying textures and solid butter combining. With the mixer on low speed, slowly add the dry ingredients and coconut milk. Beat on low speed until combined, then add the shredded coconut. Whisk it all by hand to make sure there are no butter lumps at the bottom of the bowl. The batter will be slightly thick.
Pour batter evenly into cake pans. Bake for around 21-23 minutes or until the cakes are baked through. Allow cakes to cool completely in the pans set on a wire rack. The cakes must be completely cool before frosting and assembling.
In a large bowl using a mixer beat the butter and cream cheese together on medium speed until creamy and smooth, about 2 minutes. Add confectioners’ sugar, coconut milk, vanilla extract, coconut oil, and salt with the mixer running on low. Increase to high speed and beat for 3 minutes. Add more confectioners’ sugar if frosting is too thin, more coconut milk if frosting is too thick, or an extra pinch of salt if frosting is too sweet.
While you're making your frosting, toast your coconut. In a baking sheet lay out 2 cups of sweetened shredded coconut. Try to spread it out into an even layer so it toasts evenly. Bake for 5 minutes then mix and stir the coconut around so it toasts evenly. Bake for another five minutes and stir again. Continue this process until the coconut reaches a caramel color.
Place 1 cake layer on your cake stand, cake turntable, or serving plate. Pipe a ring of frosting around the outer edge of the cake so none of your dulce de leche filling oozes out of the sides. Evenly fill the inside of the frosting ring with about 1 cup of dulce de leche. Top with 2nd cake layer and evenly pipe a ring of frosting around the outer edge of the cake then fill with 1 cup of dulce de leche. Top with the third cake layer.
Spread the remaining frosting all over the top and sides. Using an icing spatula, apply the frosting and smooth the sides. Sprinkle the toasted coconut on top of the cake and apply it to the sides as well.
Refrigerate cake for at least 30 minutes before slicing. This helps the cake hold its shape when cutting.