Bring a large pot of lightly salted water to a boil. Cook spaghetti in the boiling water, stirring occasionally, until cooked through but firm to the bite, about 12 minutes; drain.
Heat a large skillet over medium-high heat. Cook and stir beef, onion, and garlic in the hot skillet until browned and crumbly, 5 to 7 minutes; drain and discard grease. Stir spaghetti into the beef mixture; add kidney beans, diced tomatoes, tomato sauce, mushrooms, water, chili seasoning mix, and Parmesan cheese. Place a cover on the skillet, reduce heat to medium-low, and cook at a simmer until hot, about 10 minutes. Top with Cheddar cheese.
For a Tex-Mex taco spaghetti variation, substitute black beans for the kidney beans, diced tomatoes with green chilies for the regular diced tomatoes, taco seasoning for the chili seasoning, and Colby-Jack for the sharp Cheddar.