In a large mixing bowl, beat egg yolks and sugar for 10 minutes or until light lemon-colored. Beat in vanilla. Combine cake flour and baking powder; add to egg mixture alternately with water, beating well. Fold in walnuts.
In another mixing bowl, beat the egg whites until stiff peaks form; fold into batter. Pour into two greased and floured 9-in. round baking pans. Bake at 350° for 20-25 minutes or until a toothpick inserted near the center comes out clean. Cool for 10 minutes; remove from pans to wire racks to cool completely.
In a small saucepan, whisk the milk and pudding mix. Bring to a boil, stirring constantly. Remove from the heat. Pour into a bowl; press a piece of waxed paper or plastic wrap over pudding. Refrigerate for 30 minutes.
In a mixing bowl, cream the butter, shortening and confectioners’ sugar until light and fluffy. Beat in vanilla and cooled pudding. Split each cake into two layers. Place one bottom layer on a serving plate; spread with about 3/4 cup filling. Repeat layers. Garnish with chocolate curls if desired.