Preheat oven to 350 degrees F (175 degrees C). Grease and flour 3 9x1.5-inch cake pans.
Beat margarine, shortening, and white sugar together in a large bowl with an electric mixer until light and fluffy; add egg yolks one at a time, thoroughly beating each yolk into the butter mixture before adding the next.
Mix flour and baking soda together in a bowl; alternately stir portions of flour mixture and buttermilk into the butter mixture, mixing until just incorporated into a cake batter. Stir 1 cup nuts, coconut, and 1 teaspoon vanilla extract into the batter.
Beat egg whites in a glass or metal bowl until soft peaks form. Lift your beater or whisk straight up: the egg whites will form soft mounds rather than a sharp peak. Fold egg whites into the batter; pour into prepared pans.
Bake in the preheated oven until a toothpick inserted into the center comes out clean, about 30 minutes. Cool in the pans for 10 minutes before removing to cool completely on a wire rack.
Beat cream cheese and butter together in a bowl until smooth. Beat confectioners' sugar and 1 teaspoon vanilla extract into the cream cheese mixture until smooth; spread over completely cooled cakes; garnish with 1/4 cup nuts.