Preheat your oven to 350°F (175°C). Line a cupcake pan with cupcake liners.
In a small saucepan over low heat, melt the semi-sweet chocolate chips along with the coconut or canola oil. Stir until smooth, then set aside to cool slightly.
In a medium bowl, whisk together the all-purpose flour, cocoa powder, baking powder, baking soda, and salt. Set aside.
In a large mixing bowl, combine the melted butter, sugar, eggs, egg yolk, and vanilla extract. Mix until well combined. Slowly add the melted chocolate mixture and mix until smooth.
Gradually add the dry ingredients to the wet mixture, alternating with the sour cream and hot coffee (or hot water). Mix until just combined; do not overmix.
Divide the batter evenly among the lined cupcake wells, filling each about two-thirds full. Bake in the preheated oven for 18-20 minutes or until a toothpick inserted into the center comes out clean. Cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
In a large mixing bowl, beat the room temperature butter with an electric mixer until creamy. Gradually add the confectioners' sugar and cornstarch, mixing until smooth. Add the coconut milk and vanilla extract, mixing until fluffy.
Gently fold in the sweetened shredded coconut and half of the flaked coconut into the frosting.
Once the cupcakes are completely cool, generously frost each cupcake with the coconut frosting. Top with the remaining flaked coconut for a beautiful finish.