Preheat oven to 350 degrees F (175 degrees C). Grease and flour three 8 inch pans. Combine the buttermilk, baking soda and salt. Set aside.
In a large bowl, cream together the shortening, margarine and sugar until light and fluffy. Beat in the egg yolks one at a time, then stir in 1 teaspoon vanilla and almond extract. Beat in the buttermilk mixture alternately with the flour, mixing just until incorporated. In a separate bowl, beat the egg whites until they form stiff peaks. Gently fold the egg whites into the batter. Stir in pineapple, coconut and 1 cup pecans.
Pour batter evenly into prepared pans. Bake in the preheated oven for 35 minutes, or until a toothpick inserted into the center of the cake comes out clean. Allow cake layers to cool 10 minutes in pans, then turn out onto wire racks to cool completely.
To make the frosting: Cream together the butter, cream cheese and confectioners' sugar until blended. Stir in 2 teaspoons vanilla and 1 cup pecans. If frosting is too stiff to spread, stir in milk a teaspoon at a time until it reaches desired consistency.