1. Cream 1/2 c butter, shortening, and sugar in a mixing bowl until light and fluffy. Add egg yolks; beat well.
2. Mix flour and baking soda together. Add to batter mixture alternately with buttermilk and 1 tsp vanilla, beating well after each addition.
3. Stir in coconut and 1 cup walnuts. Fold in egg whites.
4. Pour into 3 greased and floured 9 inch cake pans.
Bake at 350F for 25 minutes, or until layers test done. Cool in pans for several minutes. Remove to wire racks to cool completely.
5. Combine cream cheese and 1/2 cup butter in mixing bowl; beat well. Add confectioners sugar and 1 tsp vanilla; mix well. Stir in 1/2 cup chopped walnuts.
6. Spread between layers and over top and side of cooled cake. Chill in refrigerator. Cake will be easier to cut if stored in refrigerator for 24 hours. Calories per serving: 661