Preheat the oven to 350°F (175°C).
Grease and flour three 9-inch round cake pans.
In a medium bowl, whisk together the flour, baking powder, baking soda, and salt. Set aside.
In a large mixing bowl, cream the butter and sugar until light and fluffy.
Add the eggs one at a time, mixing well after each addition, then mix in the buttermilk and vanilla extract.
Gradually add the dry ingredients to the wet ingredients, mixing until just combined.
Fold in the coconut and pecans gently until evenly distributed.
Divide the batter evenly among the prepared cake pans and smooth the tops.
Bake for 25-30 minutes or until a toothpick inserted into the center comes out clean.
Remove the cake layers from the oven and let them cool in the pans for 10 minutes before transferring to wire racks.
While the cake layers cool, prepare the frosting by beating the cream cheese and butter until smooth.
Gradually add the powdered sugar, mixing until fully combined and fluffy.
Once the cake layers are completely cool, place one layer on a serving plate, add frosting, and repeat with the remaining layers.
Use the remaining frosting to cover the top and sides of the cake.
Garnish with additional toasted pecans or coconut, if desired, before serving.