Heat the butter, cream and granulated sugar in a large saucepot over medium heat until dissolved.
Make a slurry with the cornstarch, vanilla and some cold water. Whisk into the hot mixture and boil gently, stirring until thick. Take off the heat and stir in the coconut. Chill overnight.
For the frosting:
Beat the cream cheese and butter until well combined. Add the confectioners' sugar and vanilla and beat until smooth, scraping down sides and bottom of the bowl frequently.
For the cake:
Preheat the oven to 325 degrees F. Grease 3 cake pans. Mix together the flour, baking powder and salt in a bowl. Cream the butter, granulated sugar and eggs until very light and fluffy. Add the vanilla and coconut extracts. Add the cream and sour cream alternately with the dry ingredients and mix gently. Pour into the prepared pans and bake, 18 to 25 minutes.
Remove a cake layer from the pan and place on a plate or a cardboard cake circle. Place 6 scoops of filling on top and smooth out with a spatula until it creates a perfectly even layer of filling. Place the next cake layer on top of the filling and press down evenly. Add another 6 scoops of filling, smooth out with spatula to create another layer of filling. Place the last cake layer on top of the filling and press down evenly.
Trim around the sides of the cake to create a smooth edge. Add a generous amount of frosting on top of the cake and smooth out with spatula. Then proceed to cover the sides of the cake with frosting. Sprinkle with the shredded coconut on the top and sides and then garnish with toasted coconut.