Preheat oven to 350 degrees F (175 degrees C). Bring a large pot of lightly salted water to a boil. Add pasta and cook for 8 to 10 minutes or until al dente; drain.
Place ground beef in a large, deep skillet. Cook over medium high heat until evenly brown and crumbled. Drain, excess fat, and set aside.
Heat oil in a large heavy skillet over medium heat. Saute onion until soft and translucent. Stir in garlic, and cook for 30 seconds. Add cooked beef, tomatoes, spaghetti sauce and mushrooms; bring to a boil. Reduce heat, and simmer 20 minutes.
In a 9x13 inch casserole dish, layer 1/2 of the pasta, 1/2 of the meat sauce, 1/2 of the sour cream and 1/2 of the shredded cheese. Repeat layers.