Preheat oven to 350 degrees. Grease and flour 3 8-inch or 9-inch cake pans and set aside. Combine the flour and baking soda, and sift.
Cream the butter, shortening and granulated sugar until light and fluffy. Add egg yolks and mix well. Add the buttermilk and flour mixture to the creamed mixture, alternating between the buttermilk and flour mixture. Add vanilla, coconut and nuts. Mix to combine.
Stiffly beat the egg whites to form soft peaks and fold into the batter.
Pour batter into the prepared pans and bake for 30 minutes (until the cake is golden and toothpick comes out clean). Allow to cool on racks. Remove from pans and allow to cool before frosting.
Mix the cream cheese, butter, vanilla, and powdered sugar. Add milk to thin frosting to desired consistency.