Line 2 cupcake pans (I used 2 regular muffin pans) with cupcake paper and set aside.
In a large bowl, beat butter and sugar until light and fluffy.
Beat in the eggs, preferably one at a time, making sure each one is fully incorporated. Add the vanilla and beat to combine.
In a separate bowl, whisk together the dry ingredients: flour, baking powder, and salt.
Add the flour mixture to the butter mixture, alternating with the milk and beat on medium speed. Scrape down the sides and bottom of the bowl and mix again.
Spoon the batter into the prepared cupcake pans.
Bake for about 20 to 25 minutes, or until the cupcakes spring back when lightly touched.
Remove the cupcakes from oven and cool in the pan for 5 minutes. After 5 minutes, take out the cupcakes from the pan and place them on a cooling rack to finish cooling completely.
Espresso Mixture:
In a larger cup, mix the espresso powder, Kahlua (if using), and sugar into the hot water. Set aside.
Once the cupcakes have cooled completely, using a fork, poke the tops of each cupcake a couple of times and add about 2 teaspoons of Espresso Mixture over each cupcake and allow it to soak in.
Frosting:
Add butter to a large bowl and beat for about 1 minute until smooth.
Add 2 cups of powdered sugar and 2 tablespoons of espresso and beat until smooth.
Add 2 more cups of powdered sugar and the Kahlua (if using) and beat until smooth.
Gently fold in the mascarpone cream.
If the mixture is too thin, add one more cup of powdered sugar and beat with the mixer on low speed, mix just until smooth. Don’t over mix the msacarpone cheese or it could become too thin.
Pipe the frosting onto the cupcakes.
Garnish:
Sprinkle the tops with some cocoa powder and coffee granules if desired.
Chill until ready to serve. Preferably let them sit at room temperature for 20-30 minutes before serving, to allow the frosting to become softer, otherwise it may be too firm.