Preheat the oven to 350°F.
Grease the bottoms and sides of two round cake pans.
In a large mixing bowl, cream the softened butter with 1 c powdered sugar until the mixture is smooth, light, and fluffy.
Add the egg yolks and mix until fully incorporated.
Add the cake flour, baking powder, coconut milk, and salt.
Mix until the batter is smooth and evenly combined.
In a separate bowl, whisk the egg whites until loosened and slightly frothy.
Gently add the egg whites to the cake batter.
Fold in the vanilla extract, almond extract, and shredded coconut by hand.
Do not use a mixer for this step.
Divide the batter evenly between the prepared cake pans.
Smooth the tops with a spatula.
Bake for approximately 30 minutes, or until the cakes are lightly golden and a toothpick inserted into the center comes out clean.
Place the cake pans on a wire rack and allow the cakes to cool partially.
Carefully remove the cakes from the pans.
Allow the cake layers to cool completely before filling and frosting.
If needed, trim the dome from one cake layer to create a flat surface.
Place the trimmed cake layer on a serving plate or cake stand.
Spread the raspberry preserves evenly over the top of the first cake layer, leaving a small border around the edge.
Place the second cake layer over the raspberry filling.
In a mixing bowl, beat together the powdered sugar and softened butter.
Slowly add heavy whipping cream, a small amount at a time, until the icing reaches a smooth and spreadable consistency.
Spread the icing over the top and sides of the cake.
Sprinkle shredded coconut over the top of the cake.
If desired, gently press additional coconut onto the sides.
Slice and serve.