Cream butter and shortening, then add sugar and blend until mixture is smooth. Add egg yolks and mix well.
Combine flour and soda; add to combined mixture alternately with buttermilk; stir in vanilla; add coconut and chopped nuts then set aside.
In a medium bowl, beat egg whites until stiff, then fold into batter. Pour batter into three 9-inch greased and floured cake pans. Bake at 350°F for 20-25 minutes. Cool completely and frost.
To make the frosting: Beat cream cheese and margin until smooth; add sugar and mix. Add vanilla and beat until smooth. Spread on cake. Sprinkle top with chopped walnuts.