Preheat oven to 350°F (175°C) and grease/flour three 9-inch round cake pans.
In a large bowl, sift together flour, sugar, cocoa, baking soda, baking powder, and salt.
In another bowl, whisk buttermilk, oil, eggs, and vanilla.
Combine wet and dry ingredients until smooth, then stir in hot water or coffee.
Divide batter evenly among pans and bake 30–35 minutes or until a toothpick comes out clean.
Cool in pans for 10 minutes, then transfer to wire racks to cool completely.
For frosting, combine evaporated milk, sugar, egg yolks, and butter in a saucepan.
Cook over medium heat, stirring constantly, until thick and golden (about 12 minutes).
Remove from heat, stir in vanilla, coconut, and pecans. Cool to room temperature.
Assemble cake by layering frosting between each layer and on top. Frost sides if desired.
Chill for 1 hour before slicing to set the frosting.