Mix all marinade ingredients in a large bowl until well combined.
Pierce holes all over the pig skin using a sharp knife at 5cm intervals.
Place the pig in double-layered food bags with the marinade and refrigerate for 24 hours.
Remove the pig from the fridge and rest at room temperature for 6 hours.
Preheat the oven to 190°C.
Transfer the pig to a roasting tray, foil the extremities, and roast for 15 minutes.
Reduce heat to 150°C and roast for 3 to 4 hours, basting every 30 minutes.
Collect the roasting juices in a saucepan and let the pig rest for 15 minutes.
Thicken the heated juices with a cornflour and water paste to create a smooth gravy.
Carve the pig at the table and serve with gravy and Peruvian side dishes.