This dish looks impressive, but isn't nearly as difficult as you would think it would be. The hardest thing about making it is finding a boneless suckling pig of a reasonable size. You'll probably need to order it in advance. If your butcher can't get you one, use a nice, large piece of skin-on pork belly. You will need to trim the belly horizontally, cutting parallel to the skin, so the meat and fat make an even, not-too-thick layer; if there's too much meat and fat, there won't be enough room for the stuffing when you roll it.
You'll need a meat spike - a scary-looking hand-held tool with lots of metal spikes that are sharp and sturdy enough to pierce pork skin. Don't try doing it with a knife - you need to poke lots of tiny holes and doing it one-by-one with a knife will get tedious long before you've finished.
I'm a big fan of slow-cooking roasts because there's far less shrinkage, and the meat stays succulent. It does take more time, though - a 1.5kg (3lb 5oz) pig will take about five hours at 60°C (140°F) to reach an internal temperature of 60°C/140°F. If your oven doesn't go that low, then cook it at the lowest setting your oven can be set at. The suckling pig will take less time to cook.
At Chinese restaurants, this would be served as the last savoury course, because it has rice in it. I serve it as the main course at dinner parties.
If you’re using pork belly, lay it skin-side down on the cutting board. Use a sharp knife to trim away some of the meat and fat so it’s an even layer about 2.5cm (1in) thick.
For both suckling pig and pork belly, weigh it, then lay it skin-side down on the cutting board. Multiply the weight of the suckling pig (or pork belly) by .01 - this is the amount of salt you need. (If you're using avoirdupois [pounds], use 1tsp of salt for every pound of meat.) Sprinkle the salt over the meat, then put the pork into a covered container and refrigerate for at least eight hours.
Put the two types of rice in a bowl and rinse it several times, or until the water is almost clear. Drain off as much water as possible, then weigh the rice with any water clinging to it. Add more water so the total weight of rice and water is 660g (21⅓oz). Leave to soak at room temperature (or in the fridge, if it's very warm) for at least four hours.
Unwrap the pig and leave it at room temperature for at least an hour. Cook the rice in the rice cooker. Put the XO sauce in a fine sieve placed over a bowl and drain off as much oil as possible (reserve the oil; it can be used to stir-fry vegetables). Mince the spring onions.
When the rice is ready, stir it gently with a rice paddle and cool until tepid. Mix in the drained XO sauce and the spring onions and fried shallots.
Lay the suckling pig (or pork belly) skin-side up on the cutting board. Use the meat spike to poke many holes into the skin over the entire surface – this takes some effort. Use paper towels to dry the skin, then turn it over so the skin side is down. Pat the meat dry with paper towels. Lay the glutinous rice filling down the centre of the suckling pig/pork belly. Roll the meat around the filling to fully enclose it – the sides of the pork should meet and overlap slightly – then tightly tie it in several places with kitchen twine so it’s secure. The core of rice running down the length of the roast should be about 6cm (2 ⅓in) or larger. (You won't need all the rice; refrigerate the leftovers, then microwave or pan-fry to reheat it.)
Put the suckling pig/pork belly seam-side up on an oven rack with an oven tray below it to catch drips. Insert a probe-type meat thermometer (preferably an electronic one) into the thickest part of the meat – take care that it’s not inserted into the rice stuffing. Place the roast in an oven that’s been pre-heated to 60°C (140°F). Let it slow cook until the pork reaches an interior temperature of 60°C/140°F (about five hours, or longer if using pork belly because the meat is thicker). When it's ready, remove it from the oven. Heat the oven to 220°C (430°F).
Place the roast back in the oven and let the underside (the seam side) cook until it’s brown and slightly blistered. Turn the roast over so the seam side is down, and brown the top of the roast. Carefully turn the roast as necessary over to brown the sides and top so the skin is evenly brown and crisp. If necessary, use a propane (or butane) torch to crisp up any parts of the skin that haven’t browned sufficiently.
Let the roast rest for about 15 minutes, then remove the kitchen twine. Some of the rice filling may have been squeezed out – remove it and place it in a bowl to serve on the side. Cut the roast into thick slices and serve.