Add the tinned chopped tomatoes, halved onion, salted butter, and dried chilli flakes (if using) to a medium saucepan. Bring to a gentle simmer, then simmer uncovered for 45–60 minutes, stirring occasionally.
Preheat the oven to 175°C (350°F). Line a baking sheet with baking paper or a silicone mat and lightly spray or oil it.
In a large bowl combine the beef mince, dried oregano, tomato paste, egg, grated cheese, and breadcrumbs. Season with at least 1 tsp salt and 1/2 tsp black pepper.
Pulse the raisins, parsley, and crushed garlic in a small food processor until a coarse paste forms, then add to the mince mixture and mix by hand until evenly combined.
Shape the mixture into meatballs and arrange them on the prepared baking sheet with space between each. Roast for about 20 minutes, until golden and firm. Alternatively, shallow-fry in olive oil until golden (they will finish cooking in the sauce).
When the tomato sauce has cooked, remove the onion and scrape any attached sauce back into the pot. Discard the onion skins and blend the softer inner onion pieces into the sauce with a stick blender for a smoother texture, if desired.
Add the roasted (or fried) meatballs and any pan juices to the tomato sauce and simmer together for a few minutes so the flavors meld and the meatballs finish cooking.
Meanwhile, bring a large pot of salted water to a boil and cook the spaghetti until al dente according to package instructions. Drain the pasta.
Toss the drained spaghetti with the sauce and meatballs to combine. Serve immediately with additional grated Parmesan.