Line three greased 9-in. round baking pans with waxed paper and grease the paper; set aside. In a small saucepan, heat chocolate and water over low heat until chocolate is melted. Remove from the heat; cool.
In a large bowl, cream butter and sugar until light and fluffy. Add egg yolks, one at a time, beating well after each addition. Beat in chocolate mixture and vanilla. Combine the flour, baking soda and salt; add to creamed mixture alternately with buttermilk, beating well after each addition.
In a small bowl, beat egg whites until stiff peaks form; fold into batter. Transfer to prepared pans.
Bake at 350° for 30 minutes or until a toothpick inserted in the center comes out clean. Cool for 10 minutes before removing from pans to wire racks to cool completely. Remove and discard waxed paper.
For frosting, in a Dutch oven, combine sugar and 1 cup milk. Bring to a rapid boil over medium heat. Boil for 6-8 minutes or until mixture is thickened and light caramel-colored, whisking constantly. Remove from the heat; gradually whisk in remaining milk. Let stand for 5 minutes to cool slightly, stirring occasionally.
Gradually whisk in yolks. Cook and stir over medium-low heat for 12-18 minutes or until frosting is slightly thickened and reaches 175°. (Frosting is done when a whisk pulled through the mixture exposes the bottom of the pan for a few seconds.) Remove from the heat; stir in butter until melted. Stir in coconut, pecans and vanilla. Cool to room temperature.
Place one cake layer on a serving plate; spread with a third of the frosting. Repeat layers twice. Refrigerate leftovers.