Boil a pot of salted water and cook spaghetti according to package. I cook two minutes under for al dente.
Drain and let cool. Add to a large bowl.
Add all remaining ingredients, except only half the cheese.
Toss to coat.
Top with remaining grated cheese.
Cover in plastic wrap and refrigerate for at least an hour before serving.