Preheat oven to 350 degrees F. Line two muffin tins with cupcake liners.
In a medium mixing bowl, stir together the flour, cocoa powder, baking powder, baking soda, salt, and pudding mix until combined.
In a large mixing bowl, beat together the butter and sugar for 1-2 minutes or until pale and evenly combined. Add the eggs and vanilla, mix until smooth.
Add half of the cocoa mixture to the butter mixture and mix. Pour in the milk and mix until incorporated. Add the other half of the cocoa mixture and beat until combined and smooth, scraping the sides of the bowl as needed. Add the chocolate chips to the batter and mix by hand until incorporated.
Fill each cup about 2/3 full with batter. (I like to use a cookie scoop to portion the batter.)
Bake for 20 to 25 minutes, or until a toothpick inserted in the center comes out clean. Carefully remove cupcakes from the oven. Let cool in the muffin tin for about 5 minutes before transferring to a wire rack to cool completely.
In a medium mixing bowl, beat together butter, vanilla, and chocolate-hazelnut spread.
Sift in the powdered sugar. Mix until combined and smooth. Then fold in the whipped topping.
Top the cupcakes with sprinkles if desired. Serve immediately or store in the refrigerator in an air tight container.
Transfer the frosting to a piping bag and frost the cooled cupcakes.
If you want a semi-homemade version of these cupcakes, use 1 box devil's cake mix (with water, oil, & eggs per package directions), 1/2 cup sour cream, chocolate pudding mix & chocolate chips. If you're making mini cupcakes, you'll want to use mini chocolate chips, a mini muffin tin coated with non-stick cooking spray and cook the cupcakes for about 10-12, or until a toothpick inserted in the center comes out clean.