Preheat your oven to 350°F (175°C). Grease and flour the two 9-inch round cake pans.
In a large mixing bowl, cream together the butter and sugar until light and fluffy using an electric mixer.
Beat in the eggs, one at a time, followed by the vanilla extract, mixing well after each addition.
In another bowl, sift together the flour, baking powder, baking soda, and salt.
Gradually add the dry ingredients to the butter mixture, alternating with the buttermilk. Begin and end with the dry ingredients, mixing until just combined.
Divide the batter evenly between the prepared cake pans and smooth the tops.
Bake in the preheated oven for 25-30 minutes or until a toothpick inserted in the center comes out clean. Allow the cakes to cool in the pans for 10 minutes before transferring to a wire rack to cool completely.
While the cakes are cooling, prepare the frosting: In a saucepan over medium heat, whisk together the egg yolks, sugar, evaporated milk, and vanilla extract. Cook until the mixture thickens, approximately 10 minutes, stirring constantly.
Remove from heat and stir in the shredded coconut and chopped pecans. Let the frosting cool before using.
Once the cakes are completely cooled, place one layer on a serving plate and spread a generous amount of frosting on top. Place the second cake layer on top and frost the top and sides of the cake with the remaining frosting.