Preheat oven to 350 degrees. Grease and flour 3 9-inch cake pans.
Using an electric mixer, cream butter and shortening.
Add sugar and beat until smooth.
Add egg yolks and mix thoroughly.
In a medium bowl, whisk together flour, baking soda, and salt.
Add flour mixture to butter mixture alternating with buttermilk.
Stir in vanilla extract.
Stir in coconut and pecans.
Fold in egg whites and pour batter into prepared pans.
Bake at 350 degrees for 22 to 25 minutes. Let cool.
To make frosting, beat cream cheese and butter until smooth.
Beat in powdered sugar 1 cup at a time.
Add vanilla extract and stir in pecans. If too thick you can add a tablespoon or 2 of milk.
Spread frosting on top of bottom layer of cake. Top with second layer. Cover with Frosting. Top with third layer and spread remaining frosting on top and sides. Store in refrigerator.