Preheat oven to 350 and spread 2 cups hazelnuts in a single layer, on a lined baking pan. Roast the hazelnuts for 15-20 minutes.
Remove from oven, wrap them in a clean kitchen towel and let it steam for about 10 minutes.
Rub the hazelnuts in the kitchen towel to remove the most of the skins. Let it cool and place in blender or food processor to grind to a powder. Be careful not to overdo it cuz it will become hazelnut butter.
Make the Syrup: Combine sugar, water and 1½ tablespoon of hazelnut flour in a medium pot. Cook the mixture over medium heat for about 10 minutes. Take off heat and let it cool.
Make the Filling: Add butter and ½ cup sugar to a large bowl and beat until light and fluffy. Crack in the eggs and beat until combined. Add in 1 ¼ cup of the hazelnut flour and salt. Beat until combined. Taste to see if you want more salt or not (I like it slightly saltier for the salted nut effect).
Assemble: Slice day old (slightly stale) croissants in half horizontally, making sure to not cut all the way through. Liberally brush both cut sides with the hazelnut syrup.
Using a piping bag or a spoon, spread the hazelnut filling on the bottom half. Sprinkle on the chopped chocolate.
Close the croissant and spread a line of the filling across the top and sprinkle with chopped hazelnuts (unroasted). Repeat with the rest of the croissants and arrange them on a baking sheet lined with parchment.
Bake for 15-18 minutes or until nice and crispy. Remove from oven and let cool for about 15 mins before removing from pan.
Dust with powdered sugar and enjoy!