1 | 55 | Cedar Springs,
MI - Team Time (1st 5) 49:54.8 | Spread (1st 5) 1:01.9 |
| 5, 7, 9, 14, 20, (21), (23) |
| Josh Bray, Dallas Mora, Christian Holloway, Jesse Empie, Zack Zenker, (Jacob Walker), (Remington Sawade) |
| 9:29.0, 9:41.5, 9:53.4, 10:20.0, 10:30.9, (10:31.0), (10:34.1) |
2 | 94 | Fruitport,
MI - Team Time (1st 5) 51:44.8 | Spread (1st 5) 1:41.0 |
| 4, 13, 16, 22, 39, (46), (52) |
| Noah Hendricks, Liam Parker, Isaac Fitzgerald, Cameron Brandow, Caleb Yager, (Andrew Wahr), (Michael Benedict) |
| 9:26.8, 10:09.3, 10:27.1, 10:33.8, 11:07.8, (11:22.0), (11:36.5) |
3 | 112 | Allendale,
MI - Team Time (1st 5) 52:50.9 | Spread (1st 5) 38.3 |
| 11, 19, 26, 27, 29, (31), (48) |
| Brad Hotovy, Zach Dewitt, Andrew Corner, Sam Austin, Nolan Selk, (Zack Hamlin), (Chandler Brouwer) |
| 10:08.2, 10:30.7, 10:41.8, 10:43.7, 10:46.5, (10:51.8), (11:22.5) |
4 | 130 | Kent City,
MI - Team Time (1st 5) 53:06.2 | Spread (1st 5) 2:05.9 |
| 2, 15, 25, 38, 50, (66), (76) |
| Fraser Wilson, Joshua Lee, Gavin Mead, Aaron Ortiz, Don Kridler, (Logan Powell), (Tyler Vincent) |
| 9:24.0, 10:26.0, 10:40.0, 11:06.3, 11:29.9, (12:30.8), (14:03.4) |
5 | 160 | Byron Center West,
MI - Team Time (1st 5) 54:20.3 | Spread (1st 5) 2:17.0 |
| 8, 24, 28, 41, 59, (60) |
| Brenden Streelmen, Garrett Hilliker, Hunter Moore, Brian Keillor, Jonathan Oosterhouse, (Hayden Rodgers) |
| 9:42.9, 10:38.9, 10:45.3, 11:13.3, 11:59.9, (12:02.3) |
6 | 164 | Catholic United,
MI - Team Time (1st 5) 54:53.6 | Spread (1st 5) 51.0 |
| 17, 18, 42, 43, 44, (46), (63) |
| Zane Timmer, Evan Green, Ben Hackett, Quinn Cowan, Michael Klein, (Jack Liszewski), (Eli Katt) |
| 10:28.8, 10:29.2, 11:16.7, 11:19.1, 11:19.8, (11:22.0), (12:21.8) |
7 | 165 | Belding,
MI - Team Time (1st 5) 54:24.0 | Spread (1st 5) 2:48.5 |
| 3, 30, 34, 36, 62, (64), (68) |
| Blake Flynn, Drew Parker, Jonathen Silva, Ryan Wucher, Zac Brown, (Kevin Warner), (Jeremy Warner) |
| 9:25.0, 10:49.7, 10:57.1, 10:58.7, 12:13.5, (12:27.6), (12:38.7) |
8 | 171 | Grant,
MI - Team Time (1st 5) 54:25.5 | Spread (1st 5) 3:33.6 |
| 1, 10, 40, 53, 67, (77), (80) |
| Bobby Haskin, Jesse Saxton, Mason Deible, Gannon Carr, Connor Niewadomski, (Brendan Jennings), (Jacob McCarty) |
| 9:01.1, 10:01.0, 11:10.5, 11:38.2, 12:34.7, (14:09.7), (16:28.4) |
9 | 187 | L. E. White (Allegan),
MI - Team Time (1st 5) 55:04.2 | Spread (1st 5) 2:04.3 |
| 6, 32, 45, 49, 55, (81), (82) |
| Blade Porterfield, Alex Ladra, Sy TeraVest, Joe McClelland, Nathan Passorelli, (Dylan Henrickson), (Cameron Zeter) |
| 9:41.4, 10:53.2, 11:21.3, 11:22.6, 11:45.7, (16:32.5), (17:53.2) |
10 | 243 | Chippewa Hills,
MI - Team Time (1st 5) 59:03.3 | Spread (1st 5) 3:20.9 |
| 12, 35, 57, 65, 74, (78), (79) |
| Austin Mathis, Noah DeWolf, Ray Robertson, Jacob Beers, Eric Richard, (Theodore Williams), (Nathan Potrykus) |
| 10:09.0, 10:58.6, 11:56.6, 12:29.2, 13:29.9, (15:01.0), (16:00.6) |
11 | 267 | NorthPointe Christian,
MI - Team Time (1st 5) 58:54.5 | Spread (1st 5) 1:46.6 |
| 33, 51, 56, 58, 69, (71) |
| Brad Wynalda, Malcolm Cusack, Misha Roeters, Sam Soper, Jackson Wierenga, (Quinten Huckaby) |
| 10:53.8, 11:30.9, 11:50.2, 11:59.2, 12:40.4, (12:57.4) |
12 | 294 | Unity Christian,
MI - Team Time (1st 5) 1:01:13.2 | Spread (1st 5) 2:16.4 |
| 37, 54, 61, 70, 72, (73), (75) |
| Chad Mersbergen, Tim VanDyke, Matt Wolters, Cody VanKlompenberg, Chase VanKlompenberg, (Riley Sterken), (Brett Ermer) |
| 11:05.2, 11:45.4, 12:04.3, 12:56.7, 13:21.6, (13:23.5), (13:50.5) |