Preheat oven to 350°F (175°C). Grease and line a 9-inch round cake pan.
In a bowl, whisk together flour, baking powder, baking soda, and salt.
In another bowl, beat butter and sugar for 3–4 minutes until light and fluffy.
Add eggs one at a time, beating well after each addition. Mix in vanilla and coconut extracts.
Add the dry ingredients alternately with the coconut milk, mixing just until combined. Fold in shredded coconut.
Pour batter into the prepared pan and smooth the top.
Bake for 30–35 minutes, or until a toothpick inserted in the center comes out clean.
Let the cake cool in the pan for 10 minutes, then transfer to a wire rack to cool completely.
Beat the butter until creamy. Gradually add powdered sugar, then mix in coconut milk, vanilla, and coconut extract until smooth and fluffy.
Spread frosting over the cooled cake and generously sprinkle with shredded coconut.
