Preheat Oven: Preheat the oven to 350°F (175°C). Grease and line two 9-inch round cake pans with parchment paper.
Mix Dry Ingredients: In a medium bowl, whisk together the flour, baking powder, and salt.
Prepare Wet Ingredients: In a large bowl, beat the butter and sugar with an electric mixer until light and fluffy. Add the eggs one at a time, beating well after each addition. Stir in the vanilla and coconut extracts.
Combine Wet and Dry: Gradually add the dry ingredients to the wet ingredients, alternating with the coconut milk, beginning and ending with the dry mixture. Mix until just combined.
Bake: Divide the batter evenly between the prepared cake pans. Bake for 25–30 minutes, or until a toothpick inserted in the center comes out clean. Let the cakes cool in the pans for 10 minutes before transferring to a wire rack to cool completely.
Prepare Frosting: In a medium bowl, beat the cream cheese and powdered sugar until smooth. In a separate chilled bowl, whip the heavy cream to stiff peaks. Gently fold the whipped cream into the cream cheese mixture until combined.
Assemble Cake: Place one cake layer on a serving plate. Spread an even layer of frosting on top. Add the second cake layer and frost the top and sides of the cake.
Add Coconut Topping: Press the shredded coconut onto the sides and top of the cake for a fluffy, cloud-like finish.
Chill and Serve: Refrigerate the cake for at least 1 hour before serving to allow the flavors to meld. Slice and enjoy!