Williams suffered a concussion in last week's 20-13 loss to Utah and was not expected to play, although Mendenhall said Monday there was a slight chance that could occur.
Hadley was suspended five games prior to the Utah game for violating the school's honor code, and later acknowledged to a Sports Illustrated reporter that he partied and drank alcohol at Las Vegas clubs on multiple occasions the past few months.
Coincidentally, both Hadley and Hoffman wear No. 2 on their jersey.
Hoffman, from Crescent City, Calif., has been in the program five years, having redshirted his first year in Provo after being recruited out of the small Northern California town.
Hoffman has caught 213 passes for 2,889 yards and 28 touchdowns in his career, and he needs just 9 receptions, 367 receiving yards and 3 touchdowns to become BYU's all-time record holder in each of those three categories.
Hoffman missed the season opener against Virginia with a hamstring strain but has caught 10 passes for 171 yards this season. He led the team in both categories prior to the game.
Against Utah last week, Hoffman caught 8 passes for 108 yards, marking the 34th straight time in his career that he has caught at least one pass in a game.
Hoffman toyed with the idea of turning professional last winter but returned for his senior year along with fellow preseason All-American Kyle Van Noy because he wanted to get his degree, in geography, and hone some of his football skills, including his speed and route-running ability.
He is on the Biletnikoff Award watch list for top receiver in the country honors and has posted 15 100-yard receiving games in his career.
Only one NFL scout, from Washington, requested a credential for Friday's game. … Former offensive lineman Terence Brown (2005, 2009-11) carried the alumni flag onto the field. … Officials from Conference USA officiated the contest; BYU will choose the officiating crew for next year's game at Murfreesboro, Tenn. … In addition to the aforementioned players, offensive linemen Ryker Mathews (hip) and Brock Stringham (shoulder) did not start the game.