Preheat oven to 350°F (175°C). Grease and flour three 9-inch round cake pans.
In a large bowl, cream together butter and sugar until light and fluffy. Add egg yolks one at a time, beating well after each addition. Stir in vanilla.
Combine flour and baking soda; add to creamed mixture alternately with buttermilk, beginning and ending with flour mixture. Stir in coconut and pecans.
In a separate bowl, beat egg whites until stiff peaks form. Fold into batter.
Pour batter into prepared pans. Bake for 25-30 minutes or until a toothpick inserted into the center comes out clean. Cool in pans for 10 minutes, then remove to wire racks to cool completely.
For the frosting: In a large bowl, beat cream cheese, butter, and vanilla until smooth. Gradually add powdered sugar, beating until light and fluffy. Stir in pecans.
Spread frosting between layers and over top and sides of cake.