Place egg whites in a small bowl; let stand at room temperature 30 minutes.
Preheat oven to 350°. Line bottoms of three greased 9-in. round baking pans with parchment paper; grease paper.
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 vanilla. In another bowl, whisk flour, baking soda and salt; add to creamed mixture alternately with buttermilk, beating well after each addition. Fold in coconut and pecans.
With clean beaters, beat egg whites on medium speed until stiff peaks form. Gradually fold into batter. Transfer to prepared pans. Bake 20-25 minutes or until a toothpick inserted in center comes out clean. Cool in pans 10 minutes before removing to wire racks; remove paper. Cool completely.
For frosting, in a large bowl, beat cream cheese and butter until smooth. Beat in vanilla. Gradually beat in confectioners' sugar and enough cream to reach spreading consistency. Spread frosting between layers and over top and sides of cake. Sprinkle with pecans and, if desired, coconut. Refrigerate leftovers.