Preheat oven to 350˚F.
For cake: Line the bottoms of two 6” cake rounds with parchment and lightly grease the sides. Set aside.
Place flour, baking powder, baking soda, and salt in a mixing bowl and whisk together.
In another mixing bowl, beat together butter and sugar until light and fluffy.
Add eggs, one at a time and continue to mix. Add vanilla and coconut extracts. Scrape down sides of the bowl.
Add dry ingredients and mix together until mixture just comes together. Stir in coconut milk and whole milk and continue to stir until mixture is smooth.
Divide mixture into prepared cake rounds and bake for 45 to 50 minutes or until a toothpick comes out clean when inserted into the center of the cake and the tops are golden brown.
Allow cake to cool completely and refrigerate for at least 1 hour.
For frosting: Place butter and cream cheese into a mixing bowl and beat together until light and fluffy. Add powdered sugar, one cup at a time, and continue to beat until light and fluffy. Stir vanilla extract and salt into the mixture and beat until completely incorporated and mixture is smooth.
To assemble: Place a thin layer of frosting over the top of one of the cake circles and top with the other cake circle, inverted (so both cake circle tops are touching one another). Gently frost the two tiered cake with a thin layer of frosting (the crumb coat). Place in the refrigerator for at least 30 minutes.
Coat the cake in another layer of frosting and with handfuls of toasted coconut flakes, carefully press them onto the sides of the cake until fully coated. Smooth the frosting on the top of the cake, if needed. Slice and serve.