Pour the milk in a jug and warm it in the microwave, about 30-40 seconds. Measure the yeast and add it to the milk and allow it to stand for a bit.
In the mixing bowl of a stand mixer, add the flour, sugar, salt, and butter. Place the bowl in the mixer and mix the ingredients together, until the butter has been worked into the flour and it resembles breadcrumbs.
Break the egg into the milk and whisk the mixture until the egg and yeast have been incorporated.
While the mixer is running at a low speed, drizzle the milk mixture into the flour until all the liquid has been added. Speed up the mixer and beat the dough for 2 minutes. It is a soft enriched dough so it doesn't need extensive kneading.
With a scraper remove the soft stretchy dough from the bowl into a large clean bowl. Wrap the bowl securely with cling film and place it in a warm place. Allow the dough to prove for 30-45 minutes or until it has doubled in size.
While the dough is proving make the filling. Combine the butter, brown sugar and cinnamon in a bowl and mix together into a soft spreadable mixture. Put some cling film over the bowl and put it to one side at room temperature.
To make the frosting combine the cream cheese and butter, if kept at room temperature it should be soft. Mix the cheese and butter together until it forms a paste and then add the icing sugar, vanilla, and salt and mix together well. Cover the bowl with cling film and keep it a room temperature.
Grease 1 and a half medium sized muffin pans, so that you have space for 16. Or if making large buns grease 2 jumbo muffin pans so that you have space for 12 buns. Cut small squares of baking paper to put in the bottom of each muffin hole.
Once the dough has doubled place it in the fridge for 30 minutes just to cool the dough down slightly and help it firm up a bit.
Preheat the oven to 180C/160C fan.
Take a large sheet of baking paper and cover it with a light dusting of flour. Scrape the dough out of the bowl and place it on the floured baking paper. Sprinkle some flour onto the top of the dough and work it into a rough rectangle with your hands. Sprinkle some more flour if the dough is too sticky. Then take a rolling pin and roll the dough out into a large rectangle about 50 centimetres by 30. Work slowly and gently and be careful to not tear the dough.
Once your dough has been rolled spread your cinnamon sugar filling over the dough in a thin layer. Sprinkle your chocolate nibs over the filling as well. Then working gently from the top (which is the length of your dough) roll the dough inwards to make a small initial roll. Working from left to right gently roll the dough in again, and keep on rolling bit by bit from left to right until your dough has been rolled into a long log. If pieces of dough gets stuck just gently pry them away with a thin sharp knife.
Trim the excess edges off each side of the log. Then cut the dough into 16 equal pieces (about 3 centimetres thick). If you are making larger buns in large muffin pans, cut the dough into 12 equal pieces (4 centimetres thick).
Place the cut buns into the muffin pans with the swirl facing upwards. Allow the buns to prove for 20 minutes. Preheat the oven to 180C/160C fan.
Place the trays in the oven and bake for 18-20 minutes. Remove from the oven once baked. On a large board or large piece of baking paper tip the muffin pan over and allow the buns to slip out. Gently tip the buns over so that the tops are facing upwards, be careful not to burn yourself with the hot sugar in the buns.
Spread the frosting over the piping hot buns and allow it to melt and drip down the sides. Allow to cool slightly, serve and enjoy.