Preheat oven to 350F. Grease and flour three 6" cake rounds and line with parchment.
In a medium bowl, whisk flour, hazelnut flour, baking powder, and salt until well combined. Set aside.
Using a stand mixer fitted with a paddle attachment, cream butter and sugar on med-high until pale and fluffy (about 3mins). Reduce speed and add eggs one at a time fully incorporating after each addition. Add vanilla.
Alternate adding flour mixture and milk, beginning and ending with flour (3 additions of flour and 2 of milk). Fully incorporating after each addition.
Bake for about 30-35mins or until a toothpick inserted into the center comes out mostly clean.
Place cakes on wire rack to cool for 10mins then turn out onto wire rack. Allow cakes to cool completely.
Hazelnut German Buttercream:
Place 1 1/2 cups milk and the vanilla into a medium saucepan. Cook over high heat, stirring often until it just starts to simmer. Remove from heat.
In a medium bowl, whisk remaining 1/2 cup milk, egg yolks, sugar, and cornstarch.
While whisking vigorously, slowly pour the hot milk into the egg mixture.
Return mixture to saucepan and cook over high heat, whisking constantly, until it thickens and comes to a boil.
Pass through a strainer and into a bowl. Place plastic wrap directly on top of the custard to prevent a skin from forming.
Cool to room temperature then place in the refrigerator for a couple hours to set. Bring to room temperature before using in buttercream.
Ensure pastry cream and butter are at room temperature. Whisk pastry cream by hand until smooth.
Using a stand mixer or hand mixer, beat the butter on high until pale and fluffy (3 mins). Add the room temperature custard 1 Tbsp at a time, incorporating well after each addition. Add Hazelnut flour 1/4 cup at a time.
Taste, add sifted powdered sugar if desired. Beat for 2-3mins until smooth and fluffy.
Assembly:
Place one layer of cake on a cake stand or serving plate. Spread about 2 Tbsp Nutella on top of the cake layer. Top with approximately 2/3 cup of buttercream and spread evenly. Repeat with remaining layers.
Frost and smooth the outside with a thin crumb coat. Chill for 20mins.
Frost and smooth the outside of the cake, generously frosting the sides specifically. Smooth with an icing smoother. Use a cake comb on the sides of the cake. Repeat, scraping off more frosting each time, until smooth.
Pipe dollops on top if desired with the remaining hazelnut buttercream using an Ateco 867 or Wilton 6B tip. Gently press hazelnuts into each dollop. I alternated ones with skins on/off.
Press chopped hazelnuts around the bottom of the cake if desired.