Preheat oven to 350 degrees F (175 degrees C). Grease and flour three 8 inch round cake pans.
Beat egg whites until they form stiff peaks.
In a large bowl, cream 1/2 cup margarine and shortening till light. Add white sugar, and beat till fluffy. Beat in egg yolks. Stir together flour and baking soda, and add alternately with buttermilk into the creamed mixture; mix well after each addition. Stir in 1 teaspoon vanilla, coconut, and 1 cup pecans. Fold in stiffly beaten egg whites. Spoon into prepared pans.
Bake for 25 to 40 minutes. Cool in pans for 10 minutes. Remove to wire rack to cool completely.
Combine cream cheese, 1/2 cup margarine, confectioners' sugar, and 1 teaspoon vanilla in mixer bowl. Beat till smooth. Add coconut if desired. Frost the cooled cake. The remaining 1/2 cup pecans can be stirred into frosting or sprinkled onto the cake after it is frosted.