In 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 inch round cake pans. Bake at 350 for 20-25 minutes or until toothpicks come out clean. Cool for 10 minutes; remove from pans to wire racks to cool completely.
In 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 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.