### Instructions
**For the Coconut Cake:**
1. Preheat your oven to 350°F (175°C). Grease and flour two 9-inch round cake pans, or spray with baking spray.
2. In a medium bowl, whisk together the flour, baking powder, baking soda, and salt.
3. In a large bowl, cream together the softened butter and granulated sugar until light and fluffy (about 3-5 minutes).
4. Beat in the eggs one at a time, ensuring each is fully incorporated before adding the next. Stir in the vanilla extract.
5. Gradually add the dry ingredients to the wet ingredients, alternating with the coconut milk. Begin and end with the dry ingredients. Mix until just combined, being careful not to overmix.
6. Fold in the shredded unsweetened coconut.
7. Divide the batter evenly between the prepared cake pans.
8. Bake for 25-30 minutes, or until a wooden skewer inserted into the center comes out clean.
9. Let the cakes cool in the pans for 10 minutes before inverting them onto a wire rack to cool completely.
**For the Coconut Cream Filling:**
1. In a medium saucepan, whisk together the coconut milk, granulated sugar, and cornstarch until smooth.
2. In a small bowl, whisk the egg yolks.
3. Heat the coconut milk mixture over medium heat, stirring constantly, until it begins to thicken and bubble.
4. Remove a small amount of the hot mixture and slowly whisk it into the egg yolks to temper them.
5. Pour the tempered egg yolks back into the saucepan with the remaining hot mixture.
6. Continue to cook, stirring constantly, for 1-2 minutes, until the filling is very thick. It should be thick enough to coat the back of a spoon.
7. Remove from heat and stir in the vanilla extract and butter until the butter is melted and incorporated.
8. Transfer the filling to a bowl, cover directly with plastic wrap to prevent a skin from forming, and refrigerate for at least 2 hours, or until completely chilled and firm.
**For the Whipped Cream Topping:**
1. In a large, chilled bowl, combine the very cold heavy cream, powdered sugar, and vanilla extract.
2. Beat with an electric mixer on high speed until stiff peaks form. Be careful not to overbeat, or it will become grainy.
**Assembling the Cake:**
1. Once the cake layers are completely cooled and the coconut cream filling is chilled and firm, level the cake layers if necessary using a serrated knife.
2. Place one cake layer on your serving plate. Spread an even layer of the chilled coconut cream filling over the top.
3. Carefully place the second cake layer on top.
4. Frost the top and sides of the cake with the whipped cream topping.
5. Garnish with sweetened shredded coconut, if desired.
6. Refrigerate the cake for at least 30 minutes before serving to allow the flavors to meld and the cream to set.
### Short Tips
* **Use full-fat coconut milk:** This is crucial for both the cake’s moisture and the richness of the filling. Light coconut milk won’t give you the same results.
* **Chill your mixing bowl and whisk for the whipped cream:** This helps the cream whip up faster and hold its shape better.
* **Don’t overmix the cake batter:** Overmixing can lead to a tough cake. Mix until just combined.
* **Completely chill the coconut cream filling:** A well-chilled filling will be much easier to spread and will hold its shape in the cake.
* **Make ahead:** The cake layers and coconut cream filling can be made a day in advance and stored in the refrigerator, wrapped well. Assemble the cake closer to serving for the freshest whipped cream.