In a medium saucepan melt together butter and coconut milk. Remove from heat and stir in extract. Add powdered sugar and stir until smooth. Add coconut and stir to combine. Set aside.
Preheat oven to 375℉ and grease a 15"x10" baking sheet.
In a large bowl whisk together flour, baking powder, baking soda and salt. Set aside.
In a small bowl whisk together eggs and sour cream. Set aside
In a small saucepan melt together coconut milk, butter and coconut oil. Remove from heat and stir in extracts. Add this mixture all at once to the flour mixture, whisking to combine. Add egg and sour cream mixture, whisk to combine but do not over mix. Stir in shredded coconut.
Spread evenly into prepared pan and bake for 17-20 minutes until center is set and a tooth pick inserted comes out clean.
Remove cake from oven. Set one oven rack approximately 8" from broiler and a second rack immediately below the first. Set oven to broil.
Spread prepared icing evenly over cake. Place in oven on the top rack and place a larger empty baking sheet on the rack below to catch any icing drips. Broil for approximately 3 minutes until the coconut starts to toast and the icing is bubbling. Remove from oven and allow to cool to room temperature on a wire rack.