Preheat the oven to 350°F (175°C). Grease and flour two 9-inch round cake pans.
In a large mixing bowl, combine the flour, granulated sugar, baking powder, and salt. Mix well.
Add the softened butter, whole milk, eggs, vanilla extract, and coconut extract to the dry ingredients. Beat on medium speed for about 2 minutes until well combined and smooth.
Fold in the shredded coconut gently until evenly distributed.
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, then transfer to wire racks to cool completely.
While the cakes are cooling, prepare the frosting. In a mixing bowl, whip the heavy cream until soft peaks form. Gradually add the powdered sugar and vanilla extract, continuing to whip until stiff peaks form.
Once the cakes are completely cool, place one layer on a serving plate. Spread a layer of whipped cream frosting on top. Place the second layer on top and frost the top and sides of the cake with the remaining whipped cream.
Sprinkle the toasted shredded coconut on top for garnish.
Chill the cake for at least 30 minutes before serving to allow the frosting to set.