Preheat oven to 350°F (175°C). Grease and flour three 9-inch round cake pans.
In a large bowl, cream together the sugar, butter, and shortening until light and fluffy. Add egg yolks one at a time, beating well after each addition.
Combine the flour and baking soda; add to the creamed mixture alternately with buttermilk, beginning and ending with the flour mixture. Stir in 1 teaspoon vanilla and coconut.
In a separate bowl, beat egg whites until stiff peaks form; fold into batter. Pour batter into prepared pans.
Bake for 25 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 and butter until smooth. Gradually beat in powdered sugar and 1 teaspoon vanilla. Stir in pecans.
Spread frosting between layers and over top and sides of cake.