1For the cake:
Preheat oven to 350 deg. Grease and flour two 9-inch round cake pans, knocking out excess flour. Into a bowl sift together flour, cocoa powder, baking powder, baking soda, and salt. In a small bowl whisk together sour cream, water, and vanilla. In a large bowl with an electric mixer beat together butter and sugar until light and fluffy. Beat in eggs, 1 at a time, beating well after each addition. Add flour mixture to butter mixture in batches alternately with sour cream mixture, beginning and ending with flour mixture and beating until batter is blended well. Divide batter between prepared pans and smooth tops. Bake layers in middle of oven 25 to 30 minutes, or until a tester comes out clean. Cool cake layers in pans on racks 10 minutes before turning out onto racks to cool completely.
2For the filling:
Cook the milk, egg yolks, and sugar over a double boiler until thickened. Cook it over direct heat only if it has your complete attention. Then add the vanilla and butter and whisk in until it is melted and smooth. Add the chopped pecans and coconut. Let it cool and put between cake layers.
3For the icing:
Mix powdered sugar, cream cheese, and vanilla extract until smooth. Then fold in Cool Whip. Frost cake top and sides with icing. Sprinkle sliced almonds, pecans, and peanuts over top and on sides of cake.