Preheat your oven to 350°F (175°C) and prepare two 9-inch round cake pans by greasing and lining them with parchment paper.
In a mixing bowl, whisk together the flour, baking powder, and salt. In a separate large bowl, beat the butter and sugar until light and fluffy. Add the eggs one at a time, mixing well after each addition. Stir in both the vanilla and coconut extracts.
Gradually add the dry ingredients to the batter, alternating with the coconut milk, mixing just until everything is combined.
Divide the batter evenly between the prepared pans and bake for 25 to 30 minutes, or until a toothpick inserted in the center comes out clean. Allow the cakes to cool completely before assembling.
To make the frosting, beat the cream cheese and powdered sugar together until smooth and creamy. In a separate bowl, whip the heavy cream until stiff peaks form, then gently fold it into the cream cheese mixture until fully combined.
Place one cake layer on your serving plate, spread a layer of frosting on top, then add the second layer and frost the top and sides of the cake. Press the shredded coconut onto the sides and surface to create a soft, cloud-like appearance.
Refrigerate the finished cake for at least 1 hour before serving for best texture and flavor.