Preheat oven to 350 degrees F.
Add butter, Guinness, cocoa, Mexican chocolate to a saucepan. Warm over medium heat and stir until melted. Set aside for 5 to 10 minutes to cool slightly.
Add flour, baking soda, sugar, and cinnamon to a large mixing bowl and mix together well.
Pour in the melted chocolate mixture, lightly combine, add the vanilla, eggs, and sour cream and beat everything together until well combined. The batter should be thick and dark chocolate in color.
Pour into a greased bundt pan and cook in the oven for 40 to 45 minutes, or until a toothpick comes out clean from the center of the cake. Do not leave in the oven until the cake has totally dried out — cook long enough so there is no uncooked cake on the toothpick but there may be a few moist crumbs sticking to it.
Leave to cool for 15 minutes before removing from the cake pan and placing on a wire rack to cool completely.
Place the cream cheese into the bowl of a mixer and beat on a low-medium speed using a whisk attachment. Whisk until the cream cheese is smooth and there are no big lumps remaining.
Gradually, using a large spoon, add in the sifted powdered sugar and beat gently to combine.
Then add whipping cream and mix on low to fully combine.
Place cooled cake on a cake stand and add the icing, spreading out just to the edge without going over the side to resemble a pint of creamy Guinness.