Tip the beef and pork into a large bowl. Mix and season generously with salt. Set aside for at least 30 mins, or for up to 1 hr. Meanwhile, put the bread in a bowl with the milk and leave to soak.
Tip the soaked bread into the bowl with the meat and add all the remaining meatball ingredients except for the mozzarella. Season with plenty of pepper, then scrunch the mixture together with your hands until combined.
Roughly divide the meatball mixture into 18 portions. Use your hands to flatten one portion, then gently wrap it around a piece of the mozzarella and roll into a ball. Repeat with the remaining portions. Chill the meatballs in the fridge for 1 hr before cooking. Can be prepared up to two days ahead and stored in the fridge.
Heat 3 tbsp of the oil in a large frying pan or casserole dish. Fry the meatballs in batches, browning them on all sides, then transfer to a plate and set aside. Pour the remaining oil into the pan and heat for 1 min, then fry the sliced garlic for a few seconds. Tip in the sugar, vinegar and wine (if using) and bubble for 1 min. Add the tomatoes, then season and cook over a medium heat for 10 mins. Tip in the meatballs and gently stir to ensure they’re fully coated in the sauce. Cover the pan and simmer on a low heat for about 20 mins, spooning the sauce over the meatballs occasionally.
Remove the pan from the heat and set aside, then cook the spaghetti. To serve, divide the spaghetti between bowls, top with three warm meatballs each, spoon over the sauce and scatter with the remaining parmesan.