Preheat oven to 325°F. Blend butter with flour to form paste; brush all over inside of 10-cup Bundt pan.
Toast unsweetened coconut in oven until golden, 3 to 4 minutes; set aside.
Using stand mixer on medium, beat butter with sugar until light and creamy, 3 to 4 minutes. Beat in eggs 1 at a time; beat in egg whites, then vanilla and coconut extract. Beat in melted chocolate.
In separate bowl, whisk together flour, baking powder, baking soda and salt. Stir into butter mixture alternately with coconut milk, making 3 additions of dry ingredients and 2 of coconut milk. Fold in toasted coconut.
Scrape into prepared pan, smoothing top. Bake until cake tester inserted in centre comes out clean, 55 to 60 minutes. Let cool in pan on a rack for 20 minutes. Invert onto rack; remove pan and let cool completely. Transfer cake to cake plate.
Using stand mixer fitted with paddle attachment, beat butter and cream cheese on medium until light, about 2 minutes. Scrape bottom and side. With mixer on low, gradually add icing sugar ½ cup at a time. Beat in salt and coconut extract on medium until very light and almost doubled in volume, about 3 minutes.
Spread on cooled cake and cover with sweetened coconut.