Grease a 9x13-inch dish. To make the crust, place 1/2 cup of butter in a large saucepan, and melt over low heat. Stir in the sugar, cocoa powder, and vanilla extract until the sugar has dissolved. Remove from the heat, mix in the egg until the mixture is well-combined, then stir in graham cracker crumbs and walnuts. Pack the mixture into the bottom of the prepared baking dish, smooth it into an even layer, and refrigerate until cooled, at least 30 minutes.
Make the filling: beat together confectioners' sugar, 1/2 cup of softened butter, pudding mix, and milk until the filling is smooth and fluffy. Spread the filling over the cooled crust, and return to refrigerator for 30 more minutes.
For topping, melt chocolate with 2 tablespoons of butter over very low heat, and stir until the mixture is warm (not hot) and pourable. Pour the topping over the cooled filling, spreading the topping out if necessary with an offset spatula or knife to cover the topping completely. Return the dish to the refrigerator to cool the topping for about 15 minutes. When the topping is cool but not yet hard, cut into squares; return to refrigerator to finish chilling.