The Base: Preheat oven to 350°F. In a 9x13-inch pan, cut the butter into the flour until crumbly. Mix in the walnuts and press the mixture firmly into the bottom. Bake for 20–25 minutes until golden. Cool completely.
The Cream Layer: Beat the softened cream cheese and powdered sugar until smooth. Gently fold in 8 oz (one container) of whipped topping. Spread this evenly over the cooled crust.
The Pudding Layer: In a separate bowl, whisk both the chocolate and vanilla pudding mixes with the 3 cups of cold milk. Whisk for about 2 minutes until thickened. Spread this over the cream cheese layer.
The Top: Spread the second 8 oz container of whipped topping over the pudding.
Chill: Cover and refrigerate for at least 2 hours to allow the layers to set firmly.
Serve: Just before serving, garnish with the grated semisweet chocolate.