Grease and flour three 9-in. round baking pans; set aside. In a large bowl, cream the butter, shortening and 1-3/4 cups sugar until light and fluffy. Beat in vanilla. Combine the flour, baking powder and salt; add to the creamed mixture alternately with milk, beating well after each addition.
In a large bowl with clean beaters, beat egg whites until soft peaks form. Gradually beat in remaining sugar, 1 tablespoon at a time, on high until stiff peaks form. Fold into batter. Fold in nuts.
Transfer to prepared pans. Bake at 350° for 18-22 minutes or until a toothpick inserted near the center comes out clean. Cool for 10 minutes before removing from pans to wire racks to cool completely.
For filling, in a small heavy saucepan, combine sugar and cornstarch; gradually stir in milk until smooth. Cook and stir over medium-high heat until thickened and bubbly. Reduce heat to low; cook and stir 2 minutes longer.
Remove from the heat. Stir a small amount of hot mixture into egg yolks; return all to the pan, stirring constantly. Bring to a gentle boil; cook and stir for 2 minutes. Remove from the heat; stir in butter and vanilla. Cool.
For frosting, in a large heavy saucepan, combine the sugar, egg whites, water and cream of tartar over low heat. With a hand mixer, beat on low speed for 1 minute. Continue beating on low over low heat until frosting reaches 160°, about 8-10 minutes. Pour into a large bowl; add vanilla. Beat on high until stiff peaks form, about 7 minutes.
Spread filling between cake layers. Frost cake. Store in the refrigerator. Yield: 16 servings.