| 1. | 12 | Jeff Bajema | 15:15.8 | Grand Rapids Kenowa Hills | | |
| 2. | 12 | Sean Pengelly | 15:23.9 | Hartland | | |
| 3. | 11 | Costa Willets | 15:30.1 | Ann Arbor Pioneer | | |
| 4. | 11 | Jareb Duggan | 15:35.8 | Hartland | | |
| 5. | 10 | Grant Fisher | 15:42.2 | Grand Blanc | | |
| 6. | 10 | Colin Burdette | 15:48.6 | Hilliard Davidson | | |
| 7. | 12 | Conrad Schultz | 15:49.8 | Brownstown Woodhaven | | |
| 8. | 12 | Grant Praschan | 15:51.7 | Saline | | |
| 9. | 12 | Tyler Delange | 15:52.3 | Port Huron Northern | | |
| 10. | 11 | Garrett Knapik | 15:55.2 | Hilliard Davidson | | |
| 11. | 12 | Joe Wendorf | 15:57.0 | Dexter | | |
| 12. | 12 | Galen Burrell | 15:57.7 | Ann Arbor Pioneer | | |
| 13. | 12 | Matt Greve | 15:58.0 | Dexter | | |
| 14. | 12 | Drew Woznick | 15:58.9 | Rockford | | |
| 15. | 12 | Justin Pippel | 16:01.2 | Grand Haven | | |
| 16. | 12 | Dylan Jennings | 16:01.4 | Saline | | |
| 17. | 12 | Anthony Lamus | 16:01.8 | Saline | | |
| 18. | 11 | Nathan Megge | 16:02.5 | Grand Ledge | | |
| 19. | 10 | Johnny McKeown | 16:02.8 | Hilliard Davidson | | |
| 20. | 11 | Dillyn Foy | 16:03.0 | Grand Blanc | | |
| 21. | 12 | Austin Benoit | 16:03.6 | Rockford | | |
| 22. | 12 | Johnathon Derry | 16:03.9 | Grand Blanc | | |
| 23. | 12 | Tyler Sanders | 16:04.3 | Pinckney | | |
| 24. | 12 | Paul Kosaian | 16:05.1 | Brighton | | |
| 25. | 10 | Connor Wuori | 16:05.6 | Portage Central | | |
| 26. | 10 | Matt Thomas | 16:07.7 | Port Huron Northern | | |
| 27. | 12 | Anthony Caviolo | 16:08.5 | Hilliard Davidson | | |
| 28. | 12 | Wesley Sanders | 16:10.1 | Pinckney | | |
| 29. | 12 | Carson Truesdell | 16:11.3 | Grand Blanc | | |
| 30. | 11 | Cass Millenbach | 16:14.5 | Grandville | | |
| 31. | 9 | Anthony Berry | 16:14.7 | Traverse City Central | | |
| 32. | 11 | Patrick Gavitt | 16:16.1 | Hartland | | |
| 33. | 11 | Kyle Dotterrer | 16:16.9 | Traverse City Central | | |
| 34. | 12 | Chris Coles | 16:18.0 | Rockford | | |
| 35. | 12 | Alec Sullivan | 16:18.4 | Portage Northern | | |
| 36. | 10 | Cam McAuliffe | 16:18.8 | Traverse City Central | | |
| 37. | 12 | Grant Aman | 16:19.1 | Rockford | | |
| 38. | 12 | Nick Aukerman | 16:20.4 | Ann Arbor Pioneer | | |
| 39. | 12 | Ethan Crowell | 16:21.6 | Alpena | | |
| 40. | 12 | Taylor Tafelsky | 16:22.1 | Hudsonville | | |
| 41. | 12 | Andrew Kitto | 16:24.2 | Saline | | |
| 42. | 10 | Dominic Davis | 16:25.9 | Wyandotte Roosevelt | | |
| 43. | 11 | Daniel Kroth | 16:26.1 | Okemos | | |
| 44. | 11 | Spencer Schlecht | 16:26.5 | Hilliard Davidson | | |
| 45. | 10 | Lynus Zullo | 16:27.3 | Ann Arbor Huron | | |
| 46. | 12 | Nathan Vorwerck | 16:27.8 | Auburn Bay City Western | | |
| 47. | 10 | Kevin Hall | 16:27.9 | Saline | | |
| 48. | 12 | Jim Birney | 16:28.4 | Brighton | | |
| 49. | 12 | Jake Holwerda | 16:30.7 | Hudsonville | | |
| 50. | 12 | Travis Sisovsky | 16:32.7 | Grandville | | |
| 51. | 12 | Lou Takahashi | 16:32.9 | Hilliard Davidson | | |
| 52. | 10 | Lucas Arrivo | 16:33.4 | Ann Arbor Pioneer | | |
| 53. | 10 | Jon Russell | 16:33.8 | Ann Arbor Skyline | | |
| 54. | 9 | Isaac Harding | 16:33.8 | Rockford | | |
| 55. | 12 | Alec Ondrajka | 16:34.9 | Traverse City West | | |
| 56. | 12 | Matthew Elms | 16:35.5 | Saline | | |
| 57. | 10 | Luke Hoover | 16:35.9 | Hilliard Davidson | | |
| 58. | 12 | Ben Wexler | 16:37.9 | Temperance Bedford | | |
| 59. | 11 | Cameron Herron | 16:39.3 | Wyandotte Roosevelt | | |
| 60. | 11 | Michael Buffin | 16:39.6 | Grand Ledge | | |
| 61. | 11 | Ryne Weisenberger | 16:41.5 | Pinckney | | |
| 62. | 9 | Matt Smith | 16:41.8 | Grandville | | |
| 63. | 11 | Adam Blaida | 16:43.0 | Temperance Bedford | | |
| 64. | 12 | Eric Jensen | 16:43.5 | Ann Arbor Skyline | | |
| 65. | 11 | Jack Lindsay | 16:44.1 | Hudsonville | | |
| 66. | 12 | Jacob Baker | 16:44.6 | Muskegon Mona Shores | | |
| 67. | 12 | Blake Loudermilk | 16:45.5 | Dexter | | |
| 68. | 12 | Mike Hauke | 16:45.5 | Dexter | | |
| 69. | 12 | Blake Wilson | 16:45.8 | Battle Creek Lakeview | | |
| 70. | 12 | Nicholas Tarsa | 16:46.5 | Traverse City Central | | |
| 71. | 11 | David McKinley | 16:46.7 | Okemos | | |
| 72. | 11 | Ty Dickinson | 16:47.5 | Port Huron Northern | | |
| 73. | 10 | Donavan Brazier | 16:48.0 | Grand Rapids Kenowa Hills | | |
| 74. | 12 | Austin Rios | 16:48.5 | Grand Ledge | | |
| 75. | 12 | Caleb Cuneo | 16:49.0 | Rockford | | |
| 76. | 12 | Cam Marshall | 16:49.6 | Traverse City Central | | |
| 77. | 11 | Logan Bellgraph | 16:50.8 | Grandville | | |
| 78. | 12 | Thomas Mullally | 16:52.0 | Port Huron Northern | | |
| 79. | 12 | Cody Freeman | 16:52.2 | Grandville | | |
| 80. | 11 | Alex Kulpa | 16:52.6 | Portage Northern | | |
| 81. | 11 | John Dolsen | 16:52.8 | Saline | | |
| 82. | 12 | Will Swain | 16:53.0 | Grand Haven | | |
| 83. | 10 | Isaac Harris | 16:55.2 | Pinckney | | |
| 84. | 12 | Andrew Bruning | 16:56.3 | Traverse City Central | | |
| 85. | 11 | Danny May | 16:57.1 | Wyandotte Roosevelt | | |
| 86. | 10 | Jimmy Seekamp | 16:57.7 | Traverse City West | | |
| 87. | 12 | Kieran Hall | 16:57.7 | Traverse City West | | |
| 88. | 11 | Cameron Karagitz | 16:57.9 | Brownstown Woodhaven | | |
| 89. | 11 | Jake Coulter | 16:58.6 | Wyandotte Roosevelt | | |
| 90. | 11 | Jordan Steiff | 16:58.8 | Ann Arbor Huron | | |
| 91. | 12 | Davis Smith | 16:59.6 | Pinckney | | |
| 92. | 9 | Nick Hirschenberger | 16:59.7 | Traverse City West | | |
| 93. | 10 | Kevin Elliott | 17:00.2 | Grand Rapids Kenowa Hills | | |
| 94. | 12 | Jesse Neal | 17:01.3 | Hartland | | |
| 95. | 12 | Trent Feyen | 17:03.2 | Caledonia | | |
| 96. | 12 | Austin Vanlaar | 17:03.3 | Caledonia | | |
| 97. | 12 | Zach Mayfield | 17:04.4 | Brighton | | |
| 98. | 11 | Brandon Blake | 17:04.6 | Grand Blanc | | |
| 99. | 11 | John Niska | 17:04.7 | Pinckney | | |
| 100. | 12 | Scott Stokan | 17:05.2 | Port Huron Northern | | |
| 101. | 11 | Justin Ayres | 17:05.4 | Auburn Bay City Western | | |
| 102. | 10 | Chris Brower | 17:05.6 | Traverse City Central | | |
| 103. | 12 | Adam Cichon | 17:05.6 | East Kentwood | | |
| 104. | 11 | Brad Hunt | 17:05.8 | Port Huron Northern | | |
| 105. | 11 | Tyler Smar | 17:06.0 | Pinckney | | |
| 106. | 12 | Ryan Kruzel | 17:06.5 | Brighton | | |
| 107. | 12 | Max Shpilband | 17:07.6 | Ann Arbor Pioneer | | |
| 108. | 10 | Nick Johnson | 17:07.8 | Grand Haven | | |
| 109. | 10 | Flynn Darby | 17:07.8 | Caledonia | | |
| 110. | 12 | Dan Fonte | 17:09.0 | Ann Arbor Pioneer | | |
| 111. | 9 | Jason Zellers | 17:09.5 | Jenison | | |
| 112. | 10 | Mitchell Parsons | 17:09.6 | Grandville | | |
| 113. | 10 | Jeff Torano | 17:10.0 | Kalamazoo Central | | |
| 114. | 12 | Evan Harrison | 17:10.5 | Grand Rapids Forest Hills ... | | |
| 115. | 12 | Andrew Kaylor | 17:11.0 | Kalamazoo Central | | |
| 116. | 10 | Luke Simonds | 17:12.0 | Grand Rapids Kenowa Hills | | |
| 117. | 9 | Ashkii Wilson | 17:12.3 | Grand Haven | | |
| 118. | 12 | Ben Greaves | 17:12.6 | Portage Central | | |
| 119. | 11 | Grant Hamilton | 17:13.5 | Hartland | | |
| 120. | 12 | Kevin Phelps | 17:14.0 | Portage Central | | |
| 121. | 11 | Turner Sale | 17:14.4 | Grand Haven | | |
| 122. | 9 | Josh Nickerson | 17:14.6 | Hartland | | |
| 123. | 10 | Devon Main | 17:15.3 | Hudsonville | | |
| 124. | 11 | R.J. Centala | 17:15.6 | Alpena | | |
| 125. | 12 | Tyler Aman | 17:15.7 | Rockford | | |
| 126. | 11 | Elisha Martin | 17:16.2 | Alpena | | |
| 127. | 12 | Zach Dunnavent | 17:16.8 | Portage Central | | |
| 128. | 9 | Logan Kleam | 17:17.9 | Brownstown Woodhaven | | |
| 129. | 11 | Max Lezon | 17:18.6 | Temperance Bedford | | |
| 130. | 11 | Gabe Momber | 17:18.7 | Grand Rapids Kenowa Hills | | |
| 131. | 11 | Michael Barton | 17:19.5 | Ann Arbor Huron | | |
| 132. | 11 | Nicholas Voth | 17:21.2 | Grand Blanc | | |
| 133. | 12 | Boris Burman | 17:21.6 | Ann Arbor Pioneer | | |
| 134. | 12 | Sean Hall | 17:22.3 | Traverse City West | | |
| 135. | 12 | Greg Parker | 17:22.5 | Okemos | | |
| 136. | 12 | Logan Smith | 17:23.5 | Temperance Bedford | | |
| 137. | 11 | Eric Cichon | 17:24.1 | East Kentwood | | |
| 138. | 12 | Matt Devree | 17:24.2 | Jenison | | |
| 139. | 12 | Jacob Benson | 17:25.3 | Alpena | | |
| 140. | 12 | Ben Heriford | 17:25.5 | Grand Ledge | | |
| 141. | 11 | Brad Worthington | 17:27.5 | Portage Central | | |
| 142. | 12 | Ryan Kusibab | 17:28.3 | Wyandotte Roosevelt | | |
| 143. | 10 | Luke Bottomley | 17:28.4 | Dexter | | |
| 144. | 11 | Blake Harrity | 17:29.4 | Brighton | | |
| 145. | 9 | Nolan Meister | 17:30.3 | East Kentwood | | |
| 146. | 12 | Ernesto Gutierrez | 17:30.4 | Muskegon | | |
| 147. | 12 | Brandt Hofman | 17:30.4 | Ann Arbor Huron | | |
| 148. | 11 | Colin Read | 17:30.4 | Battle Creek Lakeview | | |
| 149. | 11 | Bryce McBride | 17:30.8 | Grand Rapids Forest Hills ... | | |
| 150. | 12 | Austin Rice | 17:30.9 | Wyandotte Roosevelt | | |
| 151. | 12 | Richard Phillips | 17:30.9 | Portage Central | | |
| 152. | 10 | Casey Hanson | 17:31.3 | Dexter | | |
| 153. | 9 | Kyle Chamberlain | 17:31.4 | Hudsonville | | |
| 154. | 9 | Jordan Diephouse | 17:31.6 | Grand Haven | | |
| 155. | 10 | Adam Bundy | 17:33.3 | Grand Rapids Kenowa Hills | | |
| 156. | 12 | Lucas Barnes | 17:33.3 | Caledonia | | |
| 157. | 9 | Brandon Van Oosten | 17:34.0 | Battle Creek Lakeview | | |
| 158. | 10 | Adam Gaboury | 17:34.5 | Ann Arbor Skyline | | |
| 159. | 11 | Kris Childers | 17:34.5 | Brownstown Woodhaven | | |
| 160. | 9 | John Giles | 17:34.9 | Ann Arbor Huron | | |
| 161. | 12 | Sean Pearce | 17:35.5 | Wyandotte Roosevelt | | |
| 162. | 12 | Ben Cyr | 17:35.5 | Muskegon Mona Shores | | |
| 163. | 9 | Shayden Fisher | 17:36.0 | Grandville | | |
| 164. | 12 | Acer Xu | 17:36.7 | Ann Arbor Huron | | |
| 165. | 12 | Nate Knoth | 17:37.3 | Hudsonville | | |
| 166. | 11 | Mac Westra | 17:37.9 | Portage Central | | |
| 167. | 11 | Jensen Miller | 17:38.3 | Caledonia | | |
| 168. | 12 | Jason Letavish | 17:38.5 | Okemos | | |
| 169. | 9 | Cody Jakiel | 17:39.1 | Caledonia | | |
| 170. | 11 | Ethan Thomas | 17:39.5 | Brighton | | |
| 171. | 12 | John Dwyer | 17:39.6 | Grand Rapids Forest Hills ... | | |
| 172. | 10 | Kael Fineout | 17:40.6 | Okemos | | |
| 173. | 12 | Colin McLaughlin | 17:41.1 | Grand Rapids Forest Hills ... | | |
| 174. | 11 | Tyler Benore | 17:41.1 | Temperance Bedford | | |
| 175. | 11 | Josh Fenwick | 17:41.2 | Brighton | | |
| 176. | 12 | Christian Winters | 17:44.6 | Grand Haven | | |
| 177. | 10 | Cameron Jackson | 17:45.6 | Grand Rapids Forest Hills ... | | |
| 178. | 10 | Jon Haadsma | 17:45.8 | Battle Creek Lakeview | | |
| 179. | 12 | Thomas Dolce | 17:46.4 | Ann Arbor Skyline | | |
| 180. | 11 | Spencer Lassaline | 17:46.6 | Ann Arbor Huron | | |
| 181. | 9 | Noah Kramer | 17:46.6 | Hartland | | |
| 182. | 12 | Tyler Bannhard | 17:47.7 | Grand Ledge | | |
| 183. | 11 | Pat Taylor | 17:48.0 | Muskegon Mona Shores | | |
| 184. | 12 | Isaac Anderson | 17:48.5 | Kalamazoo Central | | |
| 185. | 11 | Evan Williams | 17:49.3 | Portage Northern | | |
| 186. | 10 | Dillon Gray | 17:51.9 | Okemos | | |
| 187. | 11 | Joseph Veeder | 17:52.5 | Kalamazoo Loy Norrix | | |
| 188. | 11 | Josh Risner | 17:53.1 | Caledonia | | |
| 189. | 10 | Dustin Campbell | 17:53.8 | Huntington North | | |
| 190. | 12 | Andrew Levy | 17:56.5 | Kalamazoo Loy Norrix | | |
| 191. | 9 | Anthony Wohlfeil | 17:57.2 | Monroe | | |
| 192. | 11 | Joe Jordan | 17:57.6 | Grand Rapids Kenowa Hills | | |
| 193. | 10 | Abe Rycus | 17:57.7 | Ann Arbor Skyline | | |
| 194. | 10 | Jacqoub Littlejohn | 17:58.3 | Auburn Bay City Western | | |
| 195. | 12 | Gerritt Anderson | 17:58.4 | Kalamazoo Central | | |
| 196. | 10 | Tony Patino | 17:59.1 | Grand Ledge | | |
| 197. | 12 | Aaron Hilsenbeck | 18:00.9 | Temperance Bedford | | |
| 198. | 10 | Kavi Kulkarni | 18:02.7 | Dexter | | |
| 199. | 9 | Demeatrice Webster | 18:04.2 | East Kentwood | | |
| 200. | 11 | Chase DuVall | 18:05.0 | Temperance Bedford | | |
| 201. | 10 | Ian Otto | 18:05.9 | Portage Northern | | |
| 202. | 10 | Connor Green | 18:06.1 | East Kentwood | | |
| 203. | 12 | Peter Colquhoun | 18:07.8 | Battle Creek Lakeview | | |
| 204. | 11 | Ben Diamond | 18:08.2 | Alpena | | |
| 205. | 11 | Trent Vanwagoner | 18:08.9 | Grand Rapids Forest Hills ... | | |
| 206. | 12 | Matt Zenner | 18:09.8 | Traverse City West | | |
| 207. | 10 | Robert Billette | 18:10.9 | Auburn Bay City Western | | |
| 208. | 10 | Kyler McVoy | 18:12.2 | Huntington North | | |
| 209. | 12 | Evan Wiewiora | 18:12.3 | Muskegon Mona Shores | | |
| 210. | 9 | Antonio Wenglikowski | 18:12.8 | Auburn Bay City Western | | |
| 211. | 10 | Walter Hacker | 18:13.4 | Huntington North | | |
| 212. | 11 | Brett Parent | 18:14.2 | Port Huron Northern | | |
| 213. | 12 | Alex Overby | 18:17.1 | Huntington North | | |
| 214. | 11 | Mack Evans | 18:17.5 | Portage Northern | | |
| 215. | 12 | Christian Ramirez | 18:18.9 | Brownstown Woodhaven | | |
| 216. | 12 | Mike Donahue | 18:19.4 | Huntington North | | |
| 217. | 10 | Alex Schlatter | 18:19.7 | Auburn Bay City Western | | |
| 218. | 12 | Jason Vogleman | 18:19.8 | Huntington North | | |
| 219. | 12 | Mitchell Anderson | 18:20.1 | Kalamazoo Central | | |
| 220. | 12 | Bryant Hepp | 18:20.6 | Kalamazoo Central | | |
| 221. | 9 | Angelo Leon | 18:21.3 | East Kentwood | | |
| 222. | 11 | Adam Russell | 18:22.6 | Monroe | | |
| 223. | 12 | Quinton Krueger | 18:23.4 | Auburn Bay City Western | | |
| 224. | 12 | Josh Hill | 18:23.4 | Jenison | | |
| 225. | 11 | John Bajorek | 18:23.8 | Brownstown Woodhaven | | |
| 226. | 9 | Jonathan Voth | 18:25.2 | Grand Blanc | | |
| 227. | 10 | Noah Hatley | 18:25.2 | Grand Rapids Forest Hills ... | | |
| 228. | 12 | Calvin Athy | 18:27.7 | Hudsonville | | |
| 229. | 11 | Neil Olson | 18:31.1 | Muskegon Mona Shores | | |
| 230. | 11 | DeAundre Dawson | 18:34.4 | East Kentwood | | |
| 231. | 10 | Logan Worsham | 18:37.7 | Huntington North | | |
| 232. | 10 | Nevin McHarg | 18:38.3 | Alpena | | |
| 233. | 11 | Everett DeBacher | 18:38.3 | Muskegon | | |
| 234. | 9 | Wayne Matunas | 18:39.4 | Portage Northern | | |
| 235. | 10 | Nicholas Angerman | 18:40.5 | Ann Arbor Skyline | | |
| 236. | 11 | Kyle White | 18:40.5 | Okemos | | |
| 237. | 9 | Ryan McIntyre | 18:43.3 | Jenison | | |
| 238. | 12 | Ben Schimpf | 18:45.5 | Battle Creek Lakeview | | |
| 239. | 11 | Michael Gale-Butto | 18:47.9 | Muskegon Mona Shores | | |
| 240. | 10 | Anthony Villanueva | 18:49.0 | Muskegon | | |
| 241. | 10 | Jared Zink | 18:49.4 | Jenison | | |
| 242. | 10 | Brian Connelly | 18:52.1 | Jenison | | |
| 243. | 12 | Jacob Lund | 18:54.5 | Muskegon Mona Shores | | |
| 244. | 12 | Edward Watson | 18:59.2 | Muskegon | | |
| 245. | 11 | Hayden Eldred | 19:02.0 | Battle Creek Lakeview | | |
| 246. | 12 | Dean Strawsine | 19:02.4 | Brownstown Woodhaven | | |
| 247. | 10 | Ceon Houston | 19:06.6 | Kalamazoo Loy Norrix | | |
| 248. | 10 | Marius VanderHoff | 19:18.5 | Portage Northern | | |
| 249. | 9 | Zachary Reynolds | 19:20.3 | Ann Arbor Skyline | | |
| 250. | 12 | Jake Bullard | 19:20.9 | Monroe | | |
| 251. | 10 | Tellis Donajkowski | 19:24.2 | Alpena | | |
| 252. | 11 | Nick Gaunt | 19:31.0 | Kalamazoo Loy Norrix | | |
| 253. | 10 | Darvious Wallace | 19:33.5 | Kalamazoo Loy Norrix | | |
| 254. | 9 | Miguel Santos | 19:36.7 | Kalamazoo Loy Norrix | | |
| 255. | 9 | Israel Cortez | 19:48.2 | Kalamazoo Loy Norrix | | |
| 256. | 10 | Jack Twarozynski | 19:48.6 | Grand Ledge | | |
| 257. | 10 | Tommy Brandys | 20:11.3 | Monroe | | |
| 258. | 11 | Noah Oetting | 20:22.5 | Monroe | | |
| 259. | 11 | Jacob Nelson | 20:25.3 | Monroe | | |
| 260. | 12 | Daniel Woodworth | 20:34.7 | Kalamazoo Central | | |
| 261. | 10 | Lakota Nielsen | 20:45.5 | Monroe | | |
| 262. | 12 | Kevin Sanchez | 21:52.9 | Muskegon | | |
| - Team Scores |
| 1. | St. Clair | 89 |
| 2. | St. Joseph | 106 |
| 3. | Linden | 128 |
| 4. | Cedar Springs | 137 |
| 5. | Ionia | 215 |
| 6. | Grand Rapids Christian | 232 |
| 7. | Grand Rapids Forest Hills Northern | 243 |
| 8. | Chelsea | 245 |
| 9. | Clio | 308 |
| 10. | East Grand Rapids | 315 |
| 11. | Richland Gull Lake | 329 |
| 12. | South Haven | 356 |
| 13. | Forest Hills Eastern | 364 |
| 14. | Ludington | 391 |
| 15. | Zeeland West | 448 |
| 16. | Grand Rapids Catholic Central | 512 |
| 17. | DeWitt | 515 |
| 18. | Celina | 585 |
| 19. | Byron Center | 596 |
| 20. | Allendale | 603 |
| 21. | Coopersville | 616 |
| 22. | Hudsonville Unity Christian | 617 |
| 23. | Spring Lake | 624 |
| 24. | Stevensville Lakeshore | 656 |
| 25. | Grand Rapids South Christian | 667 |
| 26. | Vicksburg | 674 |
| 27. | Wayland Union | 680 |
| 28. | Fremont | 720 |
| 29. | Monroe Jefferson | 736 |
| 30. | Carleton Airport | 744 |
| 31. | Holland Christian | 774 |
| 32. | Hastings | 829 |
| 33. | Three Rivers | 872 |
| 34. | Coldwater | 907 |
| 35. | Chippewa Hills | 950 |
| 36. | Edwardsburg | 967 |
| 1. | 12 | Connor Mora | 15:18.8 | Cedar Springs | | |
| 2. | 12 | Luke Johnson | 15:40.4 | Ludington | | |
| 3. | 12 | David Berry | 15:44.8 | St. Joseph | | |
| 4. | 12 | Graham Elliott | 15:51.2 | Linden | | |
| 5. | 12 | Roger Phillips | 15:52.0 | Linden | | |
| 6. | 12 | Mowgli Crosby | 15:52.9 | Forest Hills Eastern | | |
| 7. | 12 | Leopoldo Burguete | 15:53.8 | Culver Military Academies | | |
| 8. | 11 | Brad Hoekstra | 15:54.6 | Allendale | | |
| 9. | 12 | Brandon Winter | 15:55.4 | Ionia | | |
| 10. | 12 | Brennan Shafer | 15:56.0 | St. Clair | | |
| 11. | 12 | Brice Brown | 15:58.6 | Ionia | | |
| 12. | 10 | Kapo Suarez | 15:59.6 | Coopersville | | |
| 13. | 11 | Charlie Felton | 16:04.6 | St. Joseph | | |
| 14. | 12 | Austin Horn | 16:05.5 | Chelsea | | |
| 15. | 10 | Austin Sargent | 16:07.3 | Cedar Springs | | |
| 16. | 12 | Chris Koon | 16:07.7 | Clio | | |
| 17. | 11 | Cody Smith | 16:10.1 | St. Clair | | |
| 18. | 11 | Trevor Holowaty | 16:11.3 | St. Clair | | |
| 19. | 12 | Ryan Leahy | 16:13.0 | St. Joseph | | |
| 20. | 9 | Buddy Brosky | 16:16.9 | St. Clair | | |
| 21. | 11 | Nathan VanderRoest | 16:17.8 | South Haven | | |
| 22. | 11 | Sam Butler | 16:18.3 | Richland Gull Lake | | |
| 23. | 12 | Matt Lennon | 16:20.2 | Grand Rapids Catholic Cent... | | |
| 24. | 12 | Ethan Carigon | 16:21.2 | Forest Hills Eastern | | |
| 25. | 12 | Colin Jack | 16:22.3 | Grand Rapids Forest Hills ... | | |
| 26. | 12 | Justin Harthorn | 16:24.8 | Cedar Springs | | |
| 27. | 11 | Cole Mertz | 16:25.5 | Celina | | |
| 28. | 11 | John Sattler | 16:26.6 | Byron Center | | |
| 29. | 12 | Dakota Hazel | 16:29.7 | St. Clair | | |
| 30. | 12 | Evan Hendrix | 16:30.7 | South Haven | | |
| 31. | 12 | Craig Hedges | 16:30.7 | Grand Rapids Forest Hills ... | | |
| 32. | 11 | Matthew Ritter | 16:32.1 | Ludington | | |
| 33. | 11 | Stephen Pfahler | 16:32.8 | St. Joseph | | |
| 34. | 12 | Alex Bray | 16:33.0 | Cedar Springs | | |
| 35. | 12 | Zach LeMieux | 16:33.4 | Linden | | |
| 36. | 11 | Jacob Stubbs | 16:35.5 | Chelsea | | |
| 37. | 12 | Nate Kimble | 16:36.1 | DeWitt | | |
| 38. | 12 | Greyson Schultz | 16:37.9 | East Grand Rapids | | |
| 39. | 11 | Bram Parkinson | 16:38.2 | Chelsea | | |
| 40. | 11 | Ian Everitt | 16:38.8 | South Haven | | |
| 41. | 12 | Matt Plantinga | 16:39.3 | Grand Rapids Christian | | |
| 42. | 10 | Erik Edwards | 16:39.4 | St. Joseph | | |
| 43. | 10 | Ryan Torok | 16:39.7 | Linden | | |
| 44. | 11 | Dave Doyle | 16:40.1 | Linden | | |
| 45. | 12 | Jeff Peterson | 16:40.4 | Grand Rapids Christian | | |
| 46. | 10 | Benny Briseño | 16:42.9 | Grand Rapids Christian | | |
| 47. | 11 | Dillon Braun | 16:44.3 | Ionia | | |
| 48. | 12 | Thomas Kean | 16:45.1 | Clio | | |
| 49. | 11 | Mark DeJong | 16:45.3 | Grand Rapids Christian | | |
| 50. | 12 | Ben Engelsman | 16:47.0 | Zeeland West | | |
| 51. | 11 | Cal Morgan | 16:47.9 | Grand Rapids Forest Hills ... | | |
| 52. | 10 | Nick Jewell | 16:48.2 | St. Joseph | | |
| 53. | 12 | Andrew Snider | 16:48.6 | St. Clair | | |
| 54. | 11 | Paul Schneider | 16:48.8 | St. Clair | | |
| 55. | 11 | Zak Longo | 16:50.1 | East Grand Rapids | | |
| 56. | 10 | Zach Terpstra | 16:50.2 | Grand Rapids Christian | | |
| 57. | 12 | Kyle Susalla | 16:51.2 | Linden | | |
| 58. | 10 | Jim VanDyke | 16:52.9 | Grand Rapids Christian | | |
| 59. | 9 | Matthew Levitt | 16:53.5 | East Grand Rapids | | |
| 60. | 12 | Charles Merrill | 16:53.7 | Clio | | |
| 61. | 12 | Anthony Morrow | 16:54.2 | Monroe Jefferson | | |
| 62. | 12 | John Dood | 16:54.7 | Grand Rapids Forest Hills ... | | |
| 63. | 10 | Ryan Lowing | 16:57.7 | Zeeland West | | |
| 64. | 10 | Calvin Vanzytveld | 17:00.0 | Hudsonville Unity Christian | | |
| 65. | 9 | Cameron Umphrey | 17:00.6 | Cedar Springs | | |
| 66. | 11 | Clyde Anderson | 17:00.6 | Clio | | |
| 67. | 12 | Samuel Sly | 17:00.8 | Richland Gull Lake | | |
| 68. | 10 | David Trimas | 17:01.6 | Chelsea | | |
| 69. | 10 | Mitch Kolito | 17:01.6 | DeWitt | | |
| 70. | 12 | Kyler Byker | 17:03.1 | East Grand Rapids | | |
| 71. | 10 | Peter Pelon | 17:03.5 | Ionia | | |
| 72. | 12 | Jeremy Simon | 17:03.5 | Richland Gull Lake | | |
| 73. | 12 | Tyler Tomasik | 17:04.0 | Carleton Airport | | |
| 74. | 12 | Jordan Florian | 17:05.2 | Stevensville Lakeshore | | |
| 75. | 10 | Aaron Strieff | 17:06.6 | Zeeland West | | |
| 76. | 9 | Chris Oates | 17:08.3 | Chippewa Hills | | |
| 77. | 12 | Andrew Anderson | 17:08.9 | Monroe Jefferson | | |
| 78. | 12 | Adrian Taylor | 17:10.9 | Linden | | |
| 79. | 9 | Jack Neeley | 17:13.4 | Grand Rapids Forest Hills ... | | |
| 80. | 11 | Colby Clark | 17:13.6 | Stevensville Lakeshore | | |
| 81. | 11 | Chris Snow | 17:13.8 | Ludington | | |
| 82. | 11 | Jorge Cardenas | 17:14.4 | Ionia | | |
| 83. | 11 | J. Coleman Gibson | 17:14.5 | Richland Gull Lake | | |
| 84. | 10 | Mitchell Vredeveld | 17:15.3 | Grand Rapids Forest Hills ... | | |
| 85. | 12 | Tyler Green | 17:15.5 | Fremont | | |
| 86. | 9 | Connor Scwartz | 17:15.5 | Hudsonville Unity Christian | | |
| 87. | 12 | Ethan Menefee | 17:15.9 | Cedar Springs | | |
| 88. | 11 | Hayden Waterhouse | 17:16.4 | Vicksburg | | |
| 89. | 12 | Tom Kordupel | 17:16.7 | Spring Lake | | |
| 90. | 12 | Brian Wiegand | 17:17.1 | Richland Gull Lake | | |
| 91. | 10 | Marshal Rademacer | 17:17.7 | Ionia | | |
| 92. | 10 | Justin Jones | 17:19.8 | Cedar Springs | | |
| 93. | 12 | Tony Vermilye | 17:20.2 | Chelsea | | |
| 94. | 10 | Patrick Jonker | 17:20.3 | Grand Rapids Christian | | |
| 95. | 9 | Drew Donovan | 17:21.3 | Celina | | |
| 96. | 12 | Ben Snow | 17:22.1 | Richland Gull Lake | | |
| 97. | 11 | Rylan Jaglowski | 17:22.7 | Grand Rapids Catholic Cent... | | |
| 98. | 11 | Joe Clifford | 17:22.7 | East Grand Rapids | | |
| 99. | 12 | Alex Wooning | 17:23.2 | Coopersville | | |
| 100. | 11 | Curtis Jewett | 17:24.6 | Fremont | | |
| 101. | 10 | Luis DeKryger | 17:25.4 | Grand Rapids South Christian | | |
| 102. | 12 | Daniel Newhouse | 17:28.1 | Vicksburg | | |
| 103. | 12 | Ian Carter | 17:28.9 | Wayland Union | | |
| 104. | 10 | Joey DeBoer | 17:29.1 | Forest Hills Eastern | | |
| 105. | 12 | Josh Owen | 17:29.8 | Grand Rapids South Christian | | |
| 106. | 10 | Landrum Neer | 17:30.8 | Culver Military Academies | | |
| 107. | 9 | Brenden Streelman | 17:31.9 | Byron Center | | |
| 108. | 10 | Jordan Zamarron | 17:32.2 | Ionia | | |
| 109. | 11 | Micah Maness | 17:33.2 | Allendale | | |
| 110. | 12 | Phillip McCauley | 17:33.4 | DeWitt | | |
| 111. | 11 | Jake Miller | 17:33.8 | Hastings | | |
| 112. | 11 | Collin Wiersema | 17:34.3 | Hudsonville Unity Christian | | |
| 113. | 11 | Luke Riley | 17:34.6 | Ludington | | |
| 114. | 11 | Alex Clark | 17:34.6 | East Grand Rapids | | |
| 115. | 11 | Robbie Heyboer | 17:34.7 | Forest Hills Eastern | | |
| 116. | 11 | Zachery Kenreich | 17:35.3 | South Haven | | |
| 117. | 12 | Daniel Ludema | 17:35.3 | Byron Center | | |
| 118. | 12 | Cameron Leist | 17:35.4 | Coldwater | | |
| 119. | 12 | Charlie Miller | 17:36.2 | Chelsea | | |
| 120. | 11 | Jovy Bileth | 17:36.7 | Wayland Union | | |
| 121. | 10 | Brendan Lenhardt | 17:37.2 | Forest Hills Eastern | | |
| 122. | 12 | Brandon Kohler | 17:39.3 | Zeeland West | | |
| 123. | 12 | Nathan Vance | 17:40.4 | Holland Christian | | |
| 124. | 9 | Dylan Mosher | 17:40.7 | Clio | | |
| 125. | 11 | Noah Rick | 17:41.7 | Spring Lake | | |
| 126. | 11 | Andrew Truszkowski | 17:41.8 | Grand Rapids Catholic Cent... | | |
| 127. | 10 | Ronnie Collins | 17:42.3 | Hastings | | |
| 128. | 11 | Joel VanderMolen | 17:42.6 | Allendale | | |
| 129. | 11 | Andrew Van Kirk | 17:44.1 | Edwardsburg | | |
| 130. | 10 | Stephen Hoffman | 17:44.7 | East Grand Rapids | | |
| 131. | 11 | Cristino Hoban | 17:46.3 | Grand Rapids Catholic Cent... | | |
| 132. | 10 | Andrew Goodspeed | 17:46.8 | Fremont | | |
| 133. | 12 | Connor Galligan | 17:47.1 | Spring Lake | | |
| 134. | 11 | Brandon Downey | 17:48.0 | Celina | | |
| 135. | 11 | Will Morrison | 17:48.1 | Spring Lake | | |
| 136. | 11 | Brennan Steenhoek | 17:50.2 | Wayland Union | | |
| 137. | 11 | Jack Abernethy | 17:50.4 | Chelsea | | |
| 138. | 12 | Sean Konopka | 17:52.1 | Carleton Airport | | |
| 139. | 12 | Scot Gourley | 17:53.5 | Stevensville Lakeshore | | |
| 140. | 10 | Luke Peterson | 17:54.0 | Holland Christian | | |
| 141. | 9 | Christian Bohlke | 17:54.7 | Three Rivers | | |
| 142. | 10 | Andrew VandeBunte | 17:55.1 | Byron Center | | |
| 143. | 11 | Mitch Pfennig | 17:55.2 | Grand Rapids Catholic Cent... | | |
| 144. | 12 | Reagan Soekarmoen | 17:55.4 | Vicksburg | | |
| 145. | 9 | Jarek Brower | 17:55.6 | Zeeland West | | |
| 146. | 11 | Jacob Gilstrap | 17:56.1 | Celina | | |
| 147. | 10 | Nathan Mulder | 17:57.4 | Holland Christian | | |
| 148. | 9 | Josh Evers | 17:57.8 | Coldwater | | |
| 149. | 10 | Joe Lundquist | 17:58.3 | Three Rivers | | |
| 150. | 11 | Randall Warners | 17:58.5 | Grand Rapids South Christian | | |
| 151. | 12 | Ryan Galligan | 17:59.1 | Spring Lake | | |
| 152. | 11 | Corey Mader | 17:59.7 | Richland Gull Lake | | |
| 153. | 11 | Jacob Lentz | 17:59.7 | DeWitt | | |
| 154. | 12 | Joe Wojciechowski | 18:00.1 | DeWitt | | |
| 155. | 10 | Matt Lewis | 18:01.3 | Zeeland West | | |
| 156. | 11 | Cameron Sleeper | 18:02.0 | South Haven | | |
| 157. | 11 | Jonathan Krul | 18:02.4 | Grand Rapids South Christian | | |
| 158. | 11 | Jacob Newton | 18:02.4 | Wayland Union | | |
| 159. | 11 | Ryan Publiski | 18:02.7 | Carleton Airport | | |
| 160. | 12 | Ben Getz | 18:03.3 | Edwardsburg | | |
| 161. | 12 | Michael Sikorski | 18:03.4 | Holland Christian | | |
| 162. | 12 | Nate Jansen | 18:04.9 | Grand Rapids South Christian | | |
| 163. | 12 | Alex Hunter | 18:05.9 | Coopersville | | |
| 164. | 12 | Zach Pender | 18:07.4 | Clio | | |
| 165. | 12 | Ryan Soekarmoen | 18:07.8 | Vicksburg | | |
| 166. | 12 | Jonathan Coyne | 18:08.2 | Grand Rapids Forest Hills ... | | |
| 167. | 10 | Isaiah Fox | 18:08.7 | Grand Rapids Catholic Cent... | | |
| 168. | 11 | Aaron Scheffler | 18:08.7 | DeWitt | | |
| 169. | 10 | Luke Schwass | 18:08.9 | Ludington | | |
| 170. | 10 | TJ Leach | 18:09.2 | Coopersville | | |
| 171. | 9 | Michael Bank | 18:09.5 | Carleton Airport | | |
| 172. | 9 | Owen Glass | 18:10.4 | Wayland Union | | |
| 173. | 11 | Chip Schmidt | 18:10.6 | Allendale | | |
| 174. | 11 | Conner DeWeerd | 18:10.6 | Zeeland West | | |
| 175. | 11 | Brode Breuker | 18:11.0 | Fremont | | |
| 176. | 12 | Luke Kruggel | 18:12.4 | Stevensville Lakeshore | | |
| 177. | 11 | Jordyn Helmic | 18:12.9 | DeWitt | | |
| 178. | 10 | Ben Jensen | 18:14.1 | Ludington | | |
| 179. | 11 | Miles Kelleher | 18:14.4 | St. Joseph | | |
| 180. | 12 | Wayne Perrin | 18:14.9 | Coopersville | | |
| 181. | 12 | Max Vruwink | 18:15.1 | Hudsonville Unity Christian | | |
| 182. | 11 | Codi Wiersema | 18:16.2 | Hudsonville Unity Christian | | |
| 183. | 12 | Dan VanOosterum | 18:16.3 | Vicksburg | | |
| 184. | 9 | Ethan Taljonick | 18:16.6 | Clio | | |
| 185. | 10 | Robert Conner | 18:17.4 | Monroe Jefferson | | |
| 186. | 9 | Will Warmoth | 18:18.4 | Spring Lake | | |
| 187. | 12 | Garrett Bowers | 18:19.1 | Hastings | | |
| 188. | 10 | James Crosby | 18:19.5 | Forest Hills Eastern | | |
| 189. | 9 | John Hughes | 18:21.0 | Vicksburg | | |
| 190. | 12 | Kyle First | 18:22.1 | Three Rivers | | |
| 191. | 12 | Zach Mitchell | 18:24.6 | Celina | | |
| 192. | 10 | Luke Kline | 18:25.1 | Coopersville | | |
| 193. | 12 | Trent Witte | 18:25.7 | Hudsonville Unity Christian | | |
| 194. | 11 | Quinton Jennings | 18:26.1 | Allendale | | |
| 195. | 12 | Jonathan Baird | 18:28.8 | Stevensville Lakeshore | | |
| 196. | 9 | Perry Carter | 18:29.4 | Wayland Union | | |
| 197. | 12 | Derek Tulla | 18:29.4 | Three Rivers | | |
| 198. | 12 | Charles Piatt | 18:31.3 | Chippewa Hills | | |
| 199. | 12 | Brandon Edel | 18:32.8 | Ludington | | |
| 200. | 11 | Brenden Wagner | 18:33.5 | Wayland Union | | |
| 201. | 11 | Jake Wolffis | 18:33.8 | Grand Rapids South Christian | | |
| 202. | 10 | Alex Sheridan | 18:33.9 | Coopersville | | |
| 203. | 11 | Josh Norton | 18:35.2 | Coldwater | | |
| 204. | 10 | Chance Miller | 18:36.1 | Hastings | | |
| 205. | 11 | Alfredo Castro | 18:38.6 | Three Rivers | | |
| 206. | 11 | Cody Cousins | 18:39.5 | Vicksburg | | |
| 207. | 12 | Dakota West | 18:40.6 | Monroe Jefferson | | |
| 208. | 9 | Jason Gilder | 18:40.9 | Grand Rapids South Christian | | |
| 209. | 11 | Nick Choryan | 18:47.9 | Grand Rapids Catholic Cent... | | |
| 210. | 10 | Jacob Pratt | 18:49.1 | Hastings | | |
| 211. | 12 | Logan Johnson | 18:49.2 | Byron Center | | |
| 212. | 9 | Alex Eby | 18:50.2 | Carleton Airport | | |
| 213. | 9 | Daniel Paulin | 18:50.2 | Culver Military Academies | | |
| 214. | 9 | Ryan VanAppledorn | 18:50.3 | Holland Christian | | |
| 215. | 12 | Brandon Hill | 18:50.6 | Monroe Jefferson | | |
| 216. | 11 | Andrew Vanzytveld | 18:50.9 | Hudsonville Unity Christian | | |
| 217. | 10 | Shane Dunn | 18:52.0 | Coldwater | | |
| 218. | 9 | Michael Higley | 18:52.9 | Edwardsburg | | |
| 219. | 11 | Austin Eby | 18:54.4 | Carleton Airport | | |
| 220. | 9 | Nick Mathis | 18:55.1 | Chippewa Hills | | |
| 221. | 10 | Nck Giles | 18:55.6 | South Haven | | |
| 222. | 12 | Nick Beezhold | 18:57.1 | Holland Christian | | |
| 223. | 12 | Austin Kline | 18:58.2 | Three Rivers | | |
| 224. | 12 | Devon Zenoby | 18:59.1 | Spring Lake | | |
| 225. | 10 | Nolan Vanderzwaag | 18:59.1 | Holland Christian | | |
| 226. | 10 | Brandon Gray | 18:59.2 | Hastings | | |
| 227. | 12 | Michael Hoodlebrink | 19:02.9 | Stevensville Lakeshore | | |
| 228. | 10 | Eddie McIntyre | 19:03.5 | Allendale | | |
| 229. | 11 | Ryan DeWitt | 19:03.7 | Allendale | | |
| 230. | 11 | Richard Harris | 19:05.0 | Stevensville Lakeshore | | |
| 231. | 12 | Lowell Sanders | 19:11.0 | Three Rivers | | |
| 232. | 11 | David Painter | 19:14.6 | Chippewa Hills | | |
| 233. | 10 | Ethan Aerts | 19:15.2 | Coldwater | | |
| 234. | 10 | Adam Clemens | 19:18.4 | Coldwater | | |
| 235. | 9 | Steven Muthart | 19:20.4 | Culver Military Academies | | |
| 236. | 12 | Jordan Bosse | 19:26.2 | Edwardsburg | | |
| 237. | 9 | Tyler Parker | 19:32.8 | Chippewa Hills | | |
| 238. | 9 | Maverick Stitt | 19:33.5 | Fremont | | |
| 239. | 10 | DJ Bosse | 19:41.2 | Edwardsburg | | |
| 240. | 10 | Trent Licht | 19:44.2 | Coldwater | | |
| 241. | 9 | Matt Mathis | 19:47.7 | Chippewa Hills | | |
| 242. | 9 | Julio Hernandez | 19:49.1 | South Haven | | |
| 243. | 12 | Ben Peak | 19:50.2 | Edwardsburg | | |
| 244. | 10 | Austin Nicholas | 19:51.9 | Fremont | | |
| 245. | 9 | Cooper Thieme | 19:52.9 | Forest Hills Eastern | | |
| 246. | 10 | Logan St. John | 19:55.8 | Chippewa Hills | | |
| 247. | 12 | Brandon Parsons | 19:57.2 | Edwardsburg | | |
| 248. | 9 | Alex Beauchamp | 19:59.6 | Hastings | | |
| 249. | 10 | Devon Bruck | 20:06.7 | Carleton Airport | | |
| 250. | 10 | Daniel Pearce | 20:19.1 | Fremont | | |
| 251. | 9 | James Hughes | 25:52.3 | Monroe Jefferson | | |
| 1. | 11 | Ben Rowley | 16:55.5 | Pinckney | | |
| 2. | 10 | Chase Schweyer | 17:06.9 | Pinckney | | |
| 3. | 12 | Patrick Dunn | 17:12.1 | Saline | | |
| 4. | 11 | Sean Dew | 17:12.6 | Saline | | |
| 5. | 9 | Austin Wicker | 17:14.8 | Pinckney | | |
| 6. | 12 | Jon Wylie | 17:17.3 | Pinckney | | |
| 7. | 10 | Brennan Corcoran | 17:18.9 | Saline | | |
| 8. | 12 | Mark Cruickshank | 17:19.7 | Rockford | | |
| 9. | 12 | Dean Brigham | 17:22.0 | Ann Arbor Pioneer | | |
| 10. | 10 | Colin Burnett | 17:24.7 | Saline | | |
| 11. | 11 | Kaj Althaus | 17:25.4 | Saline | | |
| 12. | 9 | Jordan Query | 17:26.7 | Traverse City Central | | |
| 13. | 11 | Paul Sullivan | 17:26.8 | Traverse City West | | |
| 14. | 11 | Matthew Auvenshine | 17:26.9 | Hartland | | |
| 15. | 12 | Josh Rose | 17:27.0 | Traverse City Central | | |
| 16. | 12 | Dakota Torralva | 17:27.9 | Grandville | | |
| 17. | 9 | Bryan Adamovicz | 17:28.4 | Saline | | |
| 18. | 10 | Colin Reichenbach | 17:28.7 | Rockford | | |
| 19. | 10 | Corbin Emery | 17:29.3 | Grandville | | |
| 20. | 10 | Brian Stubelt | 17:29.4 | Portage Central | | |
| 21. | 10 | Nick Berry | 17:30.3 | Brighton | | |
| 22. | 10 | Luke Rotarius | 17:32.3 | Hartland | | |
| 23. | 11 | Harrison Pluta | 17:32.8 | Portage Central | | |
| 24. | 11 | Matt Wilson | 17:34.8 | Saline | | |
| 25. | 10 | Nick Amato | 17:35.1 | Traverse City West | | |
| 26. | 10 | Dario Potter | 17:36.1 | Ann Arbor Pioneer | | |
| 27. | 10 | Tom Terns | 17:36.7 | Brighton | | |
| 28. | 11 | Andrew Tafelski | 17:38.3 | Grand Haven | | |
| 29. | 12 | Adam Taggett | 17:39.0 | Portage Central | | |
| 30. | 11 | Thomas Furey | 17:39.4 | Saline | | |
| 31. | 9 | Brian Blankenship | 17:40.3 | Saline | | |
| 32. | 10 | Mitch Switzer | 17:40.6 | Rockford | | |
| 33. | 9 | Sean Crowley | 17:40.9 | Saline | | |
| 34. | 10 | Tom Anderson | 17:41.2 | Hartland | | |
| 35. | 12 | Johnny Ackley | 17:41.4 | Traverse City Central | | |
| 36. | 9 | Aaron Kruzel | 17:42.3 | Brighton | | |
| 37. | 12 | Adam Milley | 17:42.4 | Saline | | |
| 38. | 11 | Brett Slagh | 17:42.7 | Grandville | | |
| 39. | 10 | Nate Schipper | 17:43.6 | Hudsonville | | |
| 40. | 9 | Joe Hughes | 17:44.9 | Traverse City West | | |
| 41. | 9 | Eric Farhadi | 17:45.4 | Caledonia | | |
| 42. | 10 | Nick Hartstang | 17:45.9 | Pinckney | | |
| 43. | 9 | Derek Jordan | 17:46.0 | Saline | | |
| 44. | 10 | Brent Petersen | 17:46.4 | Grand Haven | | |
| 45. | 10 | Christopher Snider | 17:46.5 | Brighton | | |
| 46. | 11 | Matt Albano | 17:46.6 | Rockford | | |
| 47. | 12 | Zach Stoner | 17:48.0 | Portage Central | | |
| 48. | 11 | Ian Cooper | 17:49.2 | Grand Rapids Kenowa Hills | | |
| 49. | 11 | Jack VanHouten | 17:49.7 | Hartland | | |
| 50. | 11 | John Davis | 17:49.9 | Saline | | |
| 51. | 9 | Kyle Hamilton | 17:52.2 | Pinckney | | |
| 52. | 12 | Riley McCune | 17:52.3 | Saline | | |
| 53. | 9 | Grant Gabriel | 17:52.4 | Rockford | | |
| 54. | 11 | Gerrit Knopf | 17:53.1 | Grand Haven | | |
| 55. | 12 | Tim Knittle | 17:53.8 | Brighton | | |
| 56. | 11 | Kyle Funk | 17:54.8 | Grand Haven | | |
| 57. | 11 | Brett Braun | 17:55.5 | Saline | | |
| 58. | 10 | William Yang | 17:55.9 | Ann Arbor Pioneer | | |
| 59. | 9 | Noah Bylski | 17:55.9 | Pinckney | | |
| 60. | 11 | Hayden Croff | 17:56.3 | Traverse City West | | |
| 61. | 10 | John Miles | 17:56.4 | Grand Haven | | |
| 62. | 10 | Eduardo Gonzalez | 17:57.8 | Saline | | |
| 63. | 12 | Paul Chandler | 17:58.5 | Saline | | |
| 64. | 12 | Robby Frakes | 17:59.3 | Ann Arbor Pioneer | | |
| 65. | 9 | Zach Feyen | 17:59.4 | Caledonia | | |
| 66. | 9 | Myles Markey | 17:59.8 | Ann Arbor Huron | | |
| 67. | 10 | Alec Greene | 18:00.8 | Saline | | |
| 68. | 9 | Sam Wakeman | 18:02.5 | Okemos | | |
| 69. | 10 | Blake Beyer | 18:02.6 | Traverse City Central | | |
| 70. | 10 | Christian Jones | 18:02.7 | Huntington North | | |
| 71. | 12 | Matthew Pavlovic | 18:03.2 | Portage Central | | |
| 72. | 9 | Jacob Ehrman | 18:03.9 | Saline | | |
| 73. | 11 | Forrest Lewellan | 18:04.3 | Traverse City Central | | |
| 74. | 10 | Steve Salgat | 18:04.6 | Traverse City West | | |
| 75. | 11 | Russell Warila | 18:04.6 | Saline | | |
| 76. | 10 | Sam Lewis | 18:04.7 | Rockford | | |
| 77. | 10 | Bryce Tufts | 18:06.3 | Caledonia | | |
| 78. | 10 | Diego Morse | 18:06.9 | Saline | | |
| 79. | 9 | Sam Sibula | 18:09.1 | Pinckney | | |
| 80. | 10 | Shaine Kearney | 18:09.6 | Traverse City Central | | |
| 81. | 9 | Jacob Day | 18:10.6 | Rockford | | |
| 82. | 11 | Lee Luckhardt | 18:10.6 | Saline | | |
| 83. | 11 | John Nocella | 18:10.8 | Temperance Bedford | | |
| 84. | 9 | William Chown | 18:10.9 | Traverse City Central | | |
| 85. | 11 | Dominick DeFazio | 18:12.4 | Ann Arbor Pioneer | | |
| 86. | 9 | Brian Cong | 18:12.4 | Ann Arbor Huron | | |
| 87. | 12 | Kyle Strange | 18:12.8 | Grand Ledge | | |
| 88. | 9 | Gregory Lingle | 18:13.1 | Temperance Bedford | | |
| 89. | 10 | John McGreal | 18:13.4 | Saline | | |
| 90. | 9 | Grayson Harding | 18:13.4 | Rockford | | |
| 91. | 10 | Samuel Cayen | 18:13.6 | Saline | | |
| 92. | 12 | Andrew Barber | 18:14.2 | Ann Arbor Huron | | |
| 93. | 10 | Will Jibson | 18:14.3 | Ann Arbor Pioneer | | |
| 94. | 12 | Brett Bunton | 18:14.7 | Brighton | | |
| 95. | 10 | Stone Mathers | 18:14.9 | Ann Arbor Pioneer | | |
| 96. | 9 | Luc LePorttier | 18:15.6 | Ann Arbor Pioneer | | |
| 97. | 10 | Jake Roncka | 18:15.7 | Grandville | | |
| 98. | 10 | Charles VanSumeren | 18:17.7 | Okemos | | |
| 99. | 9 | Jimmy Vanderbosch | 18:18.6 | Traverse City Central | | |
| 100. | 11 | Ancel Kalakailo | 18:19.3 | Ann Arbor Pioneer | | |
| 101. | 10 | Connor Johnson | 18:19.4 | Rockford | | |
| 102. | 12 | Tyler Green | 18:19.7 | Wyandotte Roosevelt | | |
| 103. | 10 | Dakota Gerard | 18:20.4 | Grand Rapids Kenowa Hills | | |
| 104. | 12 | Jeremy Kramer | 18:21.0 | Hartland | | |
| 105. | 10 | Kirk Dickson | 18:22.6 | Rockford | | |
| 106. | 9 | Adam Audet | 18:23.1 | Temperance Bedford | | |
| 107. | 9 | Gabe Quin | 18:23.9 | Grand Rapids Kenowa Hills | | |
| 108. | 9 | Colin Freeman | 18:24.3 | Grandville | | |
| 109. | 10 | Joe Dubois | 18:24.8 | Grandville | | |
| 110. | 10 | Will Jackson | 18:24.8 | Hartland | | |
| 111. | 10 | Jonathon Kanzelmeyer | 18:24.8 | Ann Arbor Huron | | |
| 112. | 10 | Alex Lindahl | 18:25.5 | Hartland | | |
| 113. | 10 | Theodore Lenk | 18:25.6 | Saline | | |
| 114. | 11 | Josh Hlavachek | 18:25.7 | Portage Northern | | |
| 115. | 12 | Alex Hunter | 18:27.1 | Saline | | |
| 116. | 11 | Harry Barrmorris | 18:27.6 | Ann Arbor Huron | | |
| 117. | 10 | Devin Valliant | 18:28.5 | Ann Arbor Pioneer | | |
| 118. | 12 | Josh Duggan | 18:28.9 | Hartland | | |
| 119. | 10 | Dane Wuori | 18:29.0 | Portage Central | | |
| 120. | 12 | Mitchell Tolly | 18:31.0 | Saline | | |
| 121. | 12 | Skyler Vogleman | 18:31.3 | Huntington North | | |
| 122. | 12 | Eli Stowers | 18:31.4 | Grandville | | |
| 123. | 11 | Jason Walburg | 18:31.4 | Rockford | | |
| 124. | 12 | Colin Duca | 18:32.1 | Muskegon Mona Shores | | |
| 125. | 11 | Zack Kribbet | 18:33.4 | Grandville | | |
| 126. | 11 | Joe Sherman | 18:34.4 | Grand Haven | | |
| 127. | 9 | Sam Highland | 18:36.8 | Hartland | | |
| 128. | 9 | Kory Johnson | 18:37.3 | Brownstown Woodhaven | | |
| 129. | 11 | Aidan Grabill | 18:37.8 | Grandville | | |
| 130. | 9 | Faruq Schieber | 18:37.8 | Kalamazoo Central | | |
| 131. | 10 | Paul Burke | 18:38.6 | Rockford | | |
| 132. | 11 | Brad Fischer | 18:39.4 | Rockford | | |
| 133. | 10 | Charlie Bartosiewicz | 18:39.6 | Grand Rapids Kenowa Hills | | |
| 134. | 9 | Mitchell Smith | 18:39.6 | Hartland | | |
| 135. | 11 | James Oh | 18:39.9 | Ann Arbor Pioneer | | |
| 136. | 11 | Cameron Schantz | 18:40.6 | Hudsonville | | |
| 137. | 11 | Spencer Keating | 18:41.0 | Rockford | | |
| 138. | 12 | Sam DeYoung | 18:43.0 | Hudsonville | | |
| 139. | 9 | Mathew Koenig | 18:43.2 | Auburn Bay City Western | | |
| 140. | 11 | John Vaughan | 18:44.1 | Ann Arbor Huron | | |
| 141. | 10 | Quinton Jeschke | 18:44.4 | Caledonia | | |
| 142. | 10 | Ben Parsell | 18:45.1 | Rockford | | |
| 143. | 10 | Andrew Stembaugh | 18:45.2 | Rockford | | |
| 144. | 11 | Nathan McCardel | 18:45.2 | Okemos | | |
| 145. | 12 | Kevin Stolarski | 18:45.8 | Grand Haven | | |
| 146. | 12 | Caleb Pajersky | 18:46.0 | East Kentwood | | |
| 147. | 11 | Jim Reder | 18:46.5 | Portage Central | | |
| 148. | 12 | Vincent Gottwald | 18:47.4 | East Kentwood | | |
| 149. | 11 | Jack Wyatt | 18:49.2 | Rockford | | |
| 150. | 9 | Thomas Breazeale | 18:49.9 | Grandville | | |
| 151. | 12 | Evan Dunne | 18:50.1 | Grand Haven | | |
| 152. | 11 | Kenan Swihart | 18:51.6 | Rockford | | |
| 153. | 10 | Shea Cole | 18:52.1 | Grandville | | |
| 154. | 10 | Andrew Lawrence | 18:52.2 | Auburn Bay City Western | | |
| 155. | 9 | Joe Riggs | 18:52.5 | Ann Arbor Pioneer | | |
| 156. | 10 | Joey Krohn | 18:53.2 | Rockford | | |
| 157. | 11 | Jack Johnson | 18:53.6 | Temperance Bedford | | |
| 158. | 9 | Kyle Lamos | 18:53.8 | Rockford | | |
| 159. | 11 | Austin Bessinger | 18:54.3 | Grand Haven | | |
| 160. | 10 | Garett Smith | 18:54.6 | Hudsonville | | |
| 161. | 9 | Dominic Modderman | 18:55.0 | Grand Rapids Kenowa Hills | | |
| 162. | 11 | Alex Huige | 18:55.1 | Pinckney | | |
| 163. | 10 | Travis Schlatter | 18:55.3 | Auburn Bay City Western | | |
| 164. | 11 | Adam Pawlowski | 18:55.6 | Muskegon Mona Shores | | |
| 165. | 10 | Jacob Pilarski | 18:55.8 | Rockford | | |
| 166. | 12 | Eric Balut | 18:55.8 | Caledonia | | |
| 167. | 12 | Cameron Ciesielski | 18:56.3 | Auburn Bay City Western | | |
| 168. | 10 | Austin Schouman | 18:56.7 | Grand Haven | | |
| 169. | 11 | Shane Doane | 18:56.8 | Caledonia | | |
| 170. | 10 | Cameron Andrews | 18:57.0 | Kalamazoo Central | | |
| 171. | 10 | Jacob Johnson | 18:57.1 | Ann Arbor Pioneer | | |
| 172. | 9 | Jaylen Graves | 18:57.1 | Caledonia | | |
| 173. | 10 | Jonas McWilliams | 18:57.5 | Wyandotte Roosevelt | | |
| 174. | 10 | Josef Molnar | 18:57.6 | Temperance Bedford | | |
| 175. | 9 | Kellen Rau | 18:57.8 | Grandville | | |
| 176. | 11 | Jordan Priest | 18:58.4 | Grand Ledge | | |
| 177. | 12 | Alex Farhadi | 18:59.6 | Caledonia | | |
| 178. | 9 | Jeremy Tervo | 18:59.9 | Hartland | | |
| 179. | 10 | Jake Quire | 19:00.3 | Temperance Bedford | | |
| 180. | 10 | Calan Ferguson | 19:00.5 | Ann Arbor Huron | | |
| 181. | 10 | Joe Reynolds | 19:00.6 | East Kentwood | | |
| 182. | 10 | Austin Hall | 19:00.9 | Hudsonville | | |
| 183. | 11 | Harrison Lange | 19:01.1 | Grand Haven | | |
| 184. | 10 | Zach Huber | 19:01.3 | Temperance Bedford | | |
| 185. | 10 | Jason Hicks | 19:01.9 | Grand Haven | | |
| 186. | 11 | Spencer Churchill | 19:02.7 | Caledonia | | |
| 187. | 12 | Dan Hagan | 19:03.6 | Okemos | | |
| 188. | 9 | Akash Patel | 19:03.8 | Ann Arbor Huron | | |
| 189. | 9 | Josh Bostwick | 19:04.4 | Brighton | | |
| 190. | 11 | Jerry Gorski | 19:04.5 | Wyandotte Roosevelt | | |
| 191. | 10 | Jared Kelly | 19:05.2 | Grand Haven | | |
| 192. | 11 | Tim Brownell | 19:05.7 | Traverse City West | | |
| 193. | 11 | Collin Wesco | 19:05.8 | Huntington North | | |
| 194. | 11 | Rory Womack | 19:06.3 | Traverse City West | | |
| | 10 | Christian DeBlois | 19:06.8 | Brownstown Woodhaven | | |
| 195. | 12 | Josh Olszewski | 19:08.0 | Hartland | | |
| 196. | 12 | Troy Sykes | 19:08.5 | East Kentwood | | |
| 197. | 11 | Ashton Ellis | 19:08.5 | Huntington North | | |
| 198. | 12 | Tim Bueckman | 19:08.9 | Caledonia | | |
| 199. | 11 | Nate Reicha | 19:09.2 | Traverse City Central | | |
| 200. | 12 | Brance Baxter | 19:11.0 | Battle Creek Lakeview | | |
| 201. | 11 | Jordan Utter | 19:13.2 | Huntington North | | |
| 202. | 12 | Drake Kempf | 19:13.3 | Rockford | | |
| 203. | 9 | Chris Dionise | 19:13.3 | Grand Haven | | |
| 204. | 10 | Craig Campbell | 19:14.6 | Ann Arbor Huron | | |
| 205. | 12 | Derek Roush | 19:14.9 | Traverse City Central | | |
| 206. | 12 | Gael Uwera | 19:15.2 | East Kentwood | | |
| 207. | 9 | Max Knoth | 19:15.9 | Hudsonville | | |
| 208. | 9 | Max Porto | 19:16.3 | Ann Arbor Pioneer | | |
| 209. | 10 | Gabe Nulsen | 19:16.8 | Pinckney | | |
| 210. | 12 | Dino Pereira | 19:16.9 | Brownstown Woodhaven | | |
| 211. | 10 | Ryan Hunt | 19:17.7 | Auburn Bay City Western | | |
| 212. | 9 | Matthew MacGregor | 19:18.1 | Rockford | | |
| 213. | 11 | Ryan Hoover | 19:18.5 | Portage Northern | | |
| 214. | 11 | Seth Adams | 19:19.1 | East Kentwood | | |
| 215. | 10 | Kyle Mouw | 19:19.5 | Muskegon Mona Shores | | |
| 216. | 10 | Zach Crewes | 19:19.6 | Traverse City West | | |
| 217. | 9 | Connor Parrell | 19:20.0 | Brighton | | |
| 218. | 11 | Nathan Grocholski | 19:20.1 | Auburn Bay City Western | | |
| 219. | 10 | Dawson Chown | 19:20.3 | Traverse City Central | | |
| 220. | 12 | Jake Vaughn | 19:21.1 | Caledonia | | |
| 221. | 10 | Logan Dickinson | 19:21.3 | Hudsonville | | |
| 222. | 10 | Zach Capulong | 19:21.4 | Jenison | | |
| 223. | 11 | Kyle Milka | 19:21.6 | Portage Northern | | |
| 224. | 10 | Tiogo Laranja | 19:22.2 | Grand Haven | | |
| 225. | 11 | Tyler Eavey | 19:22.5 | East Kentwood | | |
| 226. | 9 | Casey Plambeck | 19:23.7 | Rockford | | |
| 227. | 10 | Ethan Schutter | 19:25.1 | Hudsonville | | |
| 228. | 11 | Noah Duren | 19:25.3 | Okemos | | |
| 229. | 12 | Deniz Karabakal | 19:26.2 | Ann Arbor Huron | | |
| 230. | 12 | Karson Konkle | 19:27.3 | Rockford | | |
| 231. | 11 | Kevin Tocco | 19:27.6 | Brownstown Woodhaven | | |
| 232. | 9 | Miles McDonald | 19:27.7 | Hartland | | |
| 233. | 9 | Nathan Goschka | 19:29.1 | Grand Ledge | | |
| 234. | 9 | Cody Clemens | 19:29.2 | Portage Northern | | |
| 235. | 12 | Bryan Vannamen | 19:30.0 | Caledonia | | |
| 236. | 10 | Tristan Edwards | 19:30.8 | Ann Arbor Pioneer | | |
| 237. | 9 | Jeremy Keen | 19:31.1 | Pinckney | | |
| 238. | 10 | Ian Epkey | 19:32.8 | Portage Central | | |
| 239. | 9 | Avery Farmer | 19:32.9 | Ann Arbor Pioneer | | |
| 240. | 11 | Santino Mattioli | 19:34.9 | Hartland | | |
| 241. | 11 | Ben Alburtus | 19:34.9 | Portage Central | | |
| 242. | 11 | Charlie Hang | 19:35.0 | East Kentwood | | |
| 243. | 9 | Taylor Mrozinski | 19:35.4 | Rockford | | |
| 244. | 10 | Colin Roedel | 19:35.5 | Hartland | | |
| 245. | 10 | Jackson Hall | 19:35.7 | Ann Arbor Pioneer | | |
| 246. | 10 | Tyler Sepanik | 19:36.5 | Traverse City Central | | |
| 247. | 10 | Nicholas Liu | 19:36.7 | Ann Arbor Pioneer | | |
| 248. | 9 | Brenden Smith | 19:36.8 | Temperance Bedford | | |
| 249. | 11 | Drew Heuermann | 19:38.1 | Grand Ledge | | |
| 250. | 12 | Preston Zoellner | 19:38.3 | Traverse City Central | | |
| 251. | 12 | Trenton Davis | 19:38.9 | Rockford | | |
| 252. | 10 | Merrick Richardson | 19:39.5 | Grand Haven | | |
| 253. | 10 | Spencer Sullivan | 19:40.8 | Temperance Bedford | | |
| 254. | 12 | Luke Ganzevoort | 19:41.2 | Caledonia | | |
| 255. | 10 | Brian Taggett | 19:41.4 | Portage Central | | |
| 256. | 12 | Tommy Erdmann | 19:42.0 | Temperance Bedford | | |
| 257. | 10 | Francis Ziemet | 19:44.0 | Ann Arbor Skyline | | |
| 258. | 12 | Sean Poliquin | 19:44.2 | Brighton | | |
| 259. | 12 | Jason Mais | 19:44.8 | Portage Northern | | |
| 260. | 11 | Christian McAlvey | 19:44.9 | Okemos | | |
| 261. | 10 | Andrew Burch | 19:46.0 | Portage Central | | |
| 262. | 9 | Douglas Ferriby | 19:46.8 | Rockford | | |
| 263. | 12 | Michael Perry | 19:46.8 | Grand Haven | | |
| 264. | 9 | Elliot Lyons | 19:47.3 | Pinckney | | |
| 265. | 10 | Ethan Parr | 19:47.4 | Battle Creek Lakeview | | |
| 266. | 11 | Caleb Holmberg | 19:48.0 | Grand Haven | | |
| 267. | 10 | Noah Aleman | 19:48.0 | Portage Northern | | |
| 268. | 11 | Mitchell Symes | 19:48.7 | Portage Northern | | |
| 269. | 9 | Cole Emery | 19:48.8 | Grandville | | |
| 270. | 12 | Tyler Dykstra | 19:49.2 | Rockford | | |
| 271. | 9 | Till Longjohn | 19:49.7 | Portage Central | | |
| 272. | 11 | Drake Jaglowski | 19:52.0 | Grandville | | |
| 273. | 10 | Quinton Broach | 19:53.1 | Portage Central | | |
| 274. | 9 | Alec Greene | 19:53.2 | Hartland | | |
| 275. | 9 | Danny Baker | 19:53.5 | Okemos | | |
| 276. | 10 | Ryan Moon | 19:53.9 | Auburn Bay City Western | | |
| 277. | 9 | Trenton Vogel | 19:54.3 | Auburn Bay City Western | | |
| 278. | 9 | Nick Bolduc | 19:54.3 | Brownstown Woodhaven | | |
| 279. | 10 | Riley McKeown | 19:54.7 | Traverse City Central | | |
| 280. | 9 | Noe Barrell | 19:55.5 | Ann Arbor Pioneer | | |
| 281. | 12 | Clay Baker | 19:55.5 | Huntington North | | |
| 282. | 11 | Jeff Skinner | 19:55.7 | Kalamazoo Loy Norrix | | |
| 283. | 9 | Zachary Mason | 19:56.4 | Kalamazoo Loy Norrix | | |
| 284. | 10 | Ian Guswiler | 19:57.0 | Rockford | | |
| 285. | 11 | Josh Ryan | 19:57.1 | Grand Haven | | |
| 286. | 12 | Zach McCord | 19:58.0 | Grand Ledge | | |
| 287. | 9 | Matt Kikkert | 19:58.0 | Caledonia | | |
| 288. | 11 | Zach Gilliam | 19:58.1 | Hudsonville | | |
| 289. | 9 | Isidore Harris | 19:58.2 | Wyandotte Roosevelt | | |
| 290. | 9 | Brendan Franklin | 19:58.5 | Grand Rapids Kenowa Hills | | |
| 291. | 9 | Sean Halverson | 19:58.6 | Muskegon Mona Shores | | |
| 292. | 10 | Alex Endreson | 19:59.1 | Traverse City Central | | |
| 293. | 10 | Justin Walter | 19:59.7 | Traverse City Central | | |
| 294. | 10 | Noah Hughes | 20:01.0 | Grand Haven | | |
| 295. | 11 | Ryan Boyes | 20:01.9 | Pinckney | | |
| 296. | 9 | Trevor Wheeler | 20:02.1 | Traverse City Central | | |
| 297. | 10 | Matt Porter | 20:02.3 | Grandville | | |
| 298. | 9 | Eric Gridley | 20:02.6 | Rockford | | |
| 299. | 10 | Charlie Kesner | 20:02.6 | Traverse City Central | | |
| 300. | 11 | Cameron Rozema | 20:03.2 | Hudsonville | | |
| 301. | 10 | Andrew Hiyama | 20:03.4 | Ann Arbor Huron | | |
| 302. | 9 | Austin Falbe | 20:04.3 | Jenison | | |
| 303. | 9 | Joseph VanArendonk | 20:04.5 | Muskegon Mona Shores | | |
| 304. | 12 | Ben Koopman | 20:04.8 | Hudsonville | | |
| 305. | 10 | Ben Hamp | 20:05.1 | Caledonia | | |
| 306. | 10 | Ian Ayers | 20:05.3 | Grand Ledge | | |
| 307. | 9 | Andrew Greenland | 20:06.0 | Caledonia | | |
| 308. | 12 | Ryan Buchmann | 20:06.0 | Auburn Bay City Western | | |
| 309. | 11 | Tong Liu | 20:06.9 | Ann Arbor Skyline | | |
| 310. | 10 | Clay Darling | 20:07.7 | Traverse City Central | | |
| 311. | 11 | Vincent Ellul | 20:08.9 | Traverse City Central | | |
| 312. | 9 | Keith Chinavare | 20:09.1 | Wyandotte Roosevelt | | |
| 313. | 10 | Elliott Petty | 20:09.3 | Traverse City Central | | |
| 314. | 9 | Martin Mueller | 20:09.8 | Kalamazoo Loy Norrix | | |
| 315. | 12 | Seth Carozza | 20:09.8 | Rockford | | |
| 316. | 12 | Jake Koopman | 20:10.9 | Hudsonville | | |
| 317. | 12 | Mitchell Garrison | 20:12.3 | Saline | | |
| 318. | 10 | Joe Outinen | 20:12.7 | Kalamazoo Loy Norrix | | |
| 319. | 11 | Ian Harman | 20:12.8 | Rockford | | |
| 320. | 11 | Greg Hudson | 20:13.0 | Battle Creek Lakeview | | |
| 321. | 12 | Nate Jackson | 20:13.3 | Hartland | | |
| 322. | 9 | Alec Nilges | 20:13.4 | Portage Northern | | |
| 323. | 9 | Cole Szunko | 20:14.5 | Traverse City Central | | |
| 324. | 11 | Will Zimmerman | 20:14.7 | Rockford | | |
| 325. | 10 | Huy Truong | 20:15.3 | East Kentwood | | |
| 326. | 10 | John Moraitis | 20:15.4 | Hartland | | |
| 327. | 10 | Cooper Hively | 20:16.3 | Kalamazoo Central | | |
| 328. | 11 | Adam Jagenberg | 20:17.0 | Hartland | | |
| 329. | 9 | Matthew Szerlag | 20:18.6 | Hartland | | |
| 330. | 10 | Matt Murphy | 20:18.8 | Hartland | | |
| 331. | 12 | Austin Monson | 20:19.7 | Caledonia | | |
| 332. | 11 | Tristan Schafer | 20:19.8 | Pinckney | | |
| 333. | 12 | Zach Diephouse | 20:20.1 | Grand Haven | | |
| 334. | 10 | Noah Cleghorn | 20:21.2 | Grand Haven | | |
| 335. | 12 | Andrew LaRoche | 20:21.3 | Hudsonville | | |
| 336. | 10 | Devon Bailey | 20:21.6 | Kalamazoo Loy Norrix | | |
| 337. | 9 | Cameron Fortune | 20:23.1 | Ann Arbor Pioneer | | |
| 338. | 10 | Aaron Slater | 20:25.5 | Kalamazoo Central | | |
| 339. | 11 | Caleb Bohn | 20:26.1 | Grand Haven | | |
| 340. | 9 | Brandon Hovinga | 20:26.2 | Caledonia | | |
| 341. | 9 | Adam Cronin | 20:27.3 | Kalamazoo Central | | |
| 342. | 9 | Alex Harrell | 20:28.6 | Kalamazoo Loy Norrix | | |
| 343. | 9 | Tony Bomia | 20:29.3 | Temperance Bedford | | |
| 344. | 11 | Mitchell McKay | 20:33.0 | Hartland | | |
| 345. | 11 | Brad Stubblefield | 20:33.4 | Hudsonville | | |
| 346. | 11 | Alex Babineau | 20:34.6 | Battle Creek Lakeview | | |
| 347. | 12 | Vivek Krishnan | 20:34.6 | Portage Central | | |
| 348. | 11 | Daniel Ibarra | 20:35.7 | Wyandotte Roosevelt | | |
| 349. | 10 | Anthony Soster | 20:37.4 | Temperance Bedford | | |
| 350. | 10 | Brandon Rose | 20:38.0 | Battle Creek Lakeview | | |
| 351. | 10 | Matt Gingerich | 20:38.1 | Ann Arbor Huron | | |
| 352. | 10 | Joey Billette | 20:39.3 | Auburn Bay City Western | | |
| 353. | 11 | Dylan Gonda | 20:39.9 | Portage Northern | | |
| 354. | 9 | Luke Sprinkle | 20:40.3 | Kalamazoo Loy Norrix | | |
| 355. | 10 | Richard Diehl | 20:40.7 | Auburn Bay City Western | | |
| 356. | 10 | Mitchell Walker | 20:40.9 | Hartland | | |
| 357. | 9 | Nate Altena | 20:41.9 | Jenison | | |
| 358. | 11 | Alex Rodriguez | 20:42.0 | Brownstown Woodhaven | | |
| 359. | 10 | Dominic Valentino | 20:42.6 | Ann Arbor Skyline | | |
| 360. | 12 | Logan Stulp | 20:43.6 | Rockford | | |
| 361. | 9 | Brandon Drent | 20:44.1 | Grand Haven | | |
| 362. | 12 | Ricky Crowley | 20:46.0 | Brownstown Woodhaven | | |
| 363. | 9 | Colin Raab | 20:46.8 | Jenison | | |
| 364. | 10 | Bailey Grabel | 20:47.9 | Grand Haven | | |
| 365. | 10 | Peter Andreasson | 20:48.7 | Traverse City Central | | |
| 366. | 10 | Kenji Burch | 20:48.7 | Ann Arbor Huron | | |
| 367. | 10 | Paul Tu | 20:49.2 | East Kentwood | | |
| 368. | 9 | Riley Mehki | 20:49.4 | Hartland | | |
| 369. | 9 | Cameron Hazel | 20:50.0 | Rockford | | |
| 370. | 10 | Jon Raemisch | 20:50.0 | Jenison | | |
| 371. | 9 | Austin Boks | 20:50.1 | Auburn Bay City Western | | |
| 372. | 10 | Brandon Henman | 20:51.2 | Grand Haven | | |
| 373. | 10 | Allen Chang | 20:51.7 | Ann Arbor Huron | | |
| 374. | 10 | Brian Bialowas | 20:54.2 | Grand Haven | | |
| 375. | 9 | Alex Bjoraker | 20:56.3 | Traverse City Central | | |
| 376. | 12 | Will Ellermets | 20:57.7 | Hudsonville | | |
| 377. | 9 | Colin McDowell | 20:59.1 | Rockford | | |
| 378. | 10 | Mitch Taber | 20:59.1 | Kalamazoo Central | | |
| 379. | 11 | Evan Hayne | 21:01.1 | Hartland | | |
| 380. | 10 | Colin Crawford | 21:03.1 | Hudsonville | | |
| 381. | 11 | Brad Hitch | 21:05.2 | Grandville | | |
| 382. | 9 | Nathan Werner | 21:06.1 | Grand Ledge | | |
| 383. | 9 | Anders Hindman | 21:07.4 | Brownstown Woodhaven | | |
| 384. | 11 | Wyatt Lennen | 21:07.9 | Kalamazoo Loy Norrix | | |
| 385. | 11 | Brad Heintzelman | 21:09.0 | Grandville | | |
| 386. | 10 | Trevor Kohley | 21:09.7 | Jenison | | |
| 387. | 12 | Zack Junger | 21:10.0 | Portage Central | | |
| 388. | 12 | Zach Fogel | 21:10.4 | Ann Arbor Pioneer | | |
| 389. | 9 | Josh Pollack | 21:11.6 | Kalamazoo Loy Norrix | | |
| 390. | 11 | Sean Chrislip | 21:13.2 | Wyandotte Roosevelt | | |
| 391. | 9 | Travis Westra | 21:13.3 | Jenison | | |
| 392. | 9 | Tyler White | 21:13.8 | Caledonia | | |
| 393. | 10 | Chris Selasky | 21:14.8 | Rockford | | |
| 394. | 9 | Brandon Laird | 21:16.9 | Ann Arbor Huron | | |
| 395. | 11 | Jared Paras | 21:18.3 | Brownstown Woodhaven | | |
| 396. | 10 | Chris Teahan | 21:19.3 | Grand Ledge | | |
| 397. | 12 | Chatpong Paripurana | 21:19.4 | Kalamazoo Loy Norrix | | |
| 398. | 10 | Devin Carey | 21:19.8 | Brownstown Woodhaven | | |
| 399. | 10 | Alex Markules | 21:21.8 | Rockford | | |
| 400. | 9 | Ethan Hilner | 21:21.8 | Traverse City Central | | |
| 401. | 9 | Brandon Gore | 21:22.1 | Temperance Bedford | | |
| 402. | 9 | Jacob Thomas | 21:23.5 | Ann Arbor Skyline | | |
| 403. | 11 | Jake Vandenberg | 21:25.4 | Grandville | | |
| 404. | 9 | Grant Arbuckle | 21:26.0 | Huntington North | | |
| 405. | 12 | Nick Dicarlo | 21:26.2 | Pinckney | | |
| 406. | 9 | Connor Lange | 21:26.5 | Grand Haven | | |
| 407. | 10 | Derek Syrba | 21:26.5 | Rockford | | |
| 408. | 9 | Max Levandoski | 21:28.4 | Grand Haven | | |
| 409. | 11 | Eli Reasons | 21:30.1 | Battle Creek Lakeview | | |
| 410. | 10 | Kendrick Dorgan | 21:31.5 | Kalamazoo Central | | |
| 411. | 10 | Sven Adriaens | 21:31.7 | Pinckney | | |
| 412. | 11 | Terlumun Nyamor | 21:31.7 | Rockford | | |
| 413. | 10 | Roger Veldman | 21:33.2 | Hudsonville | | |
| 414. | 11 | Brandon Schwandt | 21:33.8 | Portage Central | | |
| 415. | 9 | Adam Carey | 21:35.9 | Huntington North | | |
| 416. | 12 | Nate Koster | 21:36.4 | Grandville | | |
| 417. | 9 | Malachi Tripaldi | 21:37.3 | Battle Creek Lakeview | | |
| 418. | 10 | Jerry Chen | 21:39.5 | Ann Arbor Pioneer | | |
| 419. | 10 | Noah Diroff | 21:40.1 | Hartland | | |
| 420. | 9 | Ryan Yang | 21:40.5 | Ann Arbor Huron | | |
| 421. | 10 | Harrison DiCocco | 21:40.8 | Rockford | | |
| 422. | 10 | Brandon Sorokin | 21:44.7 | Caledonia | | |
| 423. | 9 | Foster Hyde | 21:48.5 | Grandville | | |
| 424. | 12 | Ethan Young | 21:49.6 | Caledonia | | |
| 425. | 10 | Mitchell Patalon | 21:51.8 | Pinckney | | |
| 426. | 11 | Adam Voorhorst | 21:52.9 | Jenison | | |
| 427. | 10 | Ben Bradshaw | 21:53.1 | Traverse City Central | | |
| 428. | 11 | Mike Gehan | 21:53.9 | Jenison | | |
| 429. | 10 | Cody Schuermann | 21:54.8 | Battle Creek Lakeview | | |
| 430. | 9 | Teddy Andriese | 21:56.8 | Traverse City Central | | |
| 431. | 12 | Ken Vandenbout | 21:57.0 | Caledonia | | |
| 432. | 10 | Sam Morris | 21:58.2 | Hudsonville | | |
| 433. | 10 | Sam Henke | 22:00.2 | Ann Arbor Pioneer | | |
| 434. | 11 | Brent McMillan | 22:01.9 | Hudsonville | | |
| 435. | 11 | Shota Tsuji | 22:02.4 | Ann Arbor Skyline | | |
| 436. | 10 | Brad Plesner | 22:02.5 | Jenison | | |
| 437. | 11 | Ted Smith | 22:03.1 | Caledonia | | |
| 438. | 9 | Greg Beaudoin | 22:03.9 | Muskegon Mona Shores | | |
| 439. | 9 | Mason Tiemann | 22:03.9 | Jenison | | |
| 440. | 9 | Ryan Montgomery | 22:03.9 | Grand Haven | | |
| 441. | 9 | Jeremiah Duke | 22:06.2 | Pinckney | | |
| 442. | 9 | Zach Rodriguez | 22:06.8 | Brownstown Woodhaven | | |
| 443. | 9 | Lucas Topie | 22:08.2 | Hudsonville | | |
| 444. | 9 | Fritz Jaeger | 22:08.7 | Grand Haven | | |
| 445. | 12 | Conner Deur | 22:08.8 | Muskegon Mona Shores | | |
| 446. | 9 | Ryan Faber | 22:09.7 | East Kentwood | | |
| 447. | 10 | David George | 22:10.0 | Grand Haven | | |
| 448. | 10 | Kevin Koberg | 22:11.0 | Wyandotte Roosevelt | | |
| 449. | 10 | Kyle Warren | 22:12.9 | Hudsonville | | |
| 450. | 11 | Tate Mazer | 22:13.5 | Portage Central | | |
| 451. | 10 | Marcel Muller | 22:13.7 | Grand Haven | | |
| 452. | 9 | Zack Kemp | 22:13.8 | Grand Ledge | | |
| 453. | 11 | Alex Kaumeheiwa | 22:19.4 | Hartland | | |
| 454. | 9 | Elijah Drake | 22:21.2 | Jenison | | |
| 455. | 11 | Jacob Premer | 22:22.4 | Portage Central | | |
| 456. | 10 | Nathan VanKley | 22:24.8 | Hudsonville | | |
| 457. | 9 | Brandt Cygan | 22:26.4 | Auburn Bay City Western | | |
| 458. | 11 | Steven Tarske | 22:28.7 | Pinckney | | |
| 459. | 9 | Cole Persch | 22:29.0 | Hudsonville | | |
| 460. | 9 | Jacob Faunce | 22:29.1 | Hartland | | |
| 461. | 10 | George BeckerRust | 22:30.1 | Battle Creek Lakeview | | |
| 462. | 9 | Joe Cooley | 22:32.5 | Auburn Bay City Western | | |
| 463. | 9 | Rj Doornbos | 22:36.6 | Hudsonville | | |
| 464. | 9 | Alec Davis | 22:36.8 | Brownstown Woodhaven | | |
| 465. | 9 | Jake Thomann | 22:38.6 | Grand Ledge | | |
| 466. | 10 | Bryce Thompson | 22:48.4 | Grandville | | |
| 467. | 9 | Robert Cardwell | 22:50.9 | Ann Arbor Huron | | |
| 468. | 11 | Tyler Kohley | 22:51.4 | Jenison | | |
| 469. | 11 | John Burnett | 22:57.8 | Muskegon Mona Shores | | |
| 470. | 11 | Tyler Schillim | 23:05.8 | Grand Rapids Kenowa Hills | | |
| 471. | 9 | David Laburn | 23:07.3 | Ann Arbor Pioneer | | |
| 472. | 10 | Graham Newman | 23:09.2 | Kalamazoo Loy Norrix | | |
| 473. | 12 | D.J. Glidden | 23:11.5 | Battle Creek Lakeview | | |
| 474. | 10 | Hunter Smith | 23:12.9 | Monroe | | |
| 475. | 9 | Isaac Knol | 23:18.7 | Jenison | | |
| 476. | 9 | Devin Weeks | 23:18.7 | Ann Arbor Pioneer | | |
| 477. | 12 | Blake Fishwick | 23:20.4 | Hartland | | |
| 478. | 9 | David Pearson | 23:25.2 | Grand Haven | | |
| 479. | 9 | Ignacio Hernandez | 23:27.2 | Kalamazoo Central | | |
| 480. | 9 | Simon Berghoef | 23:30.0 | Grand Haven | | |
| 481. | 11 | Bryce Meylan | 23:35.0 | Auburn Bay City Western | | |
| 482. | 9 | Ken Mochrie | 23:35.4 | Auburn Bay City Western | | |
| 483. | 9 | Dante Mattioli | 23:37.9 | Hartland | | |
| 484. | 12 | Andy June | 23:41.3 | Wyandotte Roosevelt | | |
| 485. | 9 | Jacob Finlan | 23:42.7 | Auburn Bay City Western | | |
| 486. | 10 | Mason Kolmetz | 23:47.6 | Brownstown Woodhaven | | |
| 487. | 12 | Jake Homan | 23:50.4 | Caledonia | | |
| 488. | 9 | Caleb Eggers | 23:51.2 | Hudsonville | | |
| 489. | 9 | Silas Chalfant | 23:51.8 | Battle Creek Lakeview | | |
| 490. | 10 | Brandon Allard | 23:53.7 | Caledonia | | |
| 491. | 9 | Spencer Reibsome | 23:59.0 | Auburn Bay City Western | | |
| 492. | 9 | Jordan Heinzerling | 24:06.4 | Monroe | | |
| 493. | 11 | Nick Zayan | 24:08.0 | Hartland | | |
| 494. | 9 | Will Norton | 24:12.5 | Ann Arbor Pioneer | | |
| 495. | 12 | Andrew Beaver | 24:18.3 | Auburn Bay City Western | | |
| 496. | 9 | Sam Sieffert | 24:20.2 | Auburn Bay City Western | | |
| 497. | 10 | Mario Cassem | 24:22.2 | Traverse City West | | |
| 498. | 10 | Kurt Geishert | 24:32.9 | Monroe | | |
| 499. | 12 | Kyle Bos | 24:35.7 | Muskegon Mona Shores | | |
| 500. | 10 | Josh Dillon | 24:38.6 | Caledonia | | |
| 501. | 11 | Caleb Koss | 24:52.3 | Portage Central | | |
| 502. | 12 | Craig Bradley | 24:56.0 | Rockford | | |
| 503. | 9 | Colton Crum | 24:57.8 | Hartland | | |
| 504. | 9 | Pavan Dave | 25:19.6 | Brownstown Woodhaven | | |
| 505. | 9 | Ben Provancher | 25:28.0 | Portage Central | | |
| 506. | 12 | Jordan Mitcavish | 25:31.3 | Battle Creek Lakeview | | |
| 507. | 9 | Seth Harding | 25:37.8 | Kalamazoo Loy Norrix | | |
| 508. | 9 | Sam Hall | 25:50.6 | Pinckney | | |
| 509. | 10 | Casey Koberg | 26:11.0 | Wyandotte Roosevelt | | |
| 510. | 12 | Nick Watroba | 26:16.4 | Brownstown Woodhaven | | |
| 511. | 9 | Nick Fridsma | 27:21.0 | Hudsonville | | |
| 512. | 10 | Samuel Tardani | 27:47.0 | Muskegon Mona Shores | | |
| 1. | 11 | Austin Kromroy | 17:12.4 | St. Clair | | |
| 2. | 11 | Noah Buteyn | 17:18.0 | Grand Rapids Christian | | |
| 3. | 11 | Adam Gizowski | 17:20.5 | St. Clair | | |
| 4. | 11 | Ryan Parslow | 17:30.1 | St. Clair | | |
| 5. | 10 | Leland Robertson | 17:40.9 | Grand Rapids Christian | | |
| 6. | 10 | Will Hough | 17:41.6 | Richland Gull Lake | | |
| 7. | 10 | Drew Conley | 17:46.9 | Ionia | | |
| 8. | 10 | William VanDyken | 17:47.3 | Grand Rapids Christian | | |
| 9. | 12 | Marcus Hill | 17:47.4 | St. Clair | | |
| 10. | 12 | Stephen Collins | 17:47.8 | East Grand Rapids | | |
| 11. | 12 | Nathaniel Ford | 17:49.5 | East Grand Rapids | | |
| 12. | 12 | Avery Osentoski | 17:50.2 | Chelsea | | |
| 13. | 11 | Erik Molenaar | 17:52.7 | East Grand Rapids | | |
| 14. | 11 | Peter Mack | 17:52.8 | East Grand Rapids | | |
| 15. | 12 | Stevie Drake | 17:53.5 | East Grand Rapids | | |
| 16. | 9 | Nathan Legault | 17:53.8 | Grand Rapids Forest Hills ... | | |
| 17. | 11 | Tyler Schow | 17:56.3 | St. Joseph | | |
| 18. | 9 | Jack Callahan | 17:59.1 | Grand Rapids Forest Hills ... | | |
| 19. | 10 | Tim Mayer | 18:00.3 | Ionia | | |
| 20. | 9 | Daniel Pfahler | 18:00.5 | St. Joseph | | |
| 21. | 11 | David Garner | 18:01.3 | Richland Gull Lake | | |
| 22. | 12 | Cody Alberty | 18:01.3 | St. Clair | | |
| 23. | 12 | Austin Winter | 18:03.2 | Ionia | | |
| 24. | 12 | Alex Sias | 18:03.5 | Cedar Springs | | |
| 25. | 11 | Josh Fontius | 18:04.1 | Grand Rapids Forest Hills ... | | |
| 26. | 9 | Kyle Evans | 18:04.6 | DeWitt | | |
| 27. | 10 | Kenton Rossi | 18:05.1 | East Grand Rapids | | |
| 28. | 12 | Alex Mevenne | 18:08.3 | Grand Rapids Forest Hills ... | | |
| 29. | 11 | Matt Gesink | 18:11.7 | Grand Rapids South Christian | | |
| 30. | 9 | Justin Bohlke | 18:11.9 | Three Rivers | | |
| 31. | 11 | Charlie DeJonge | 18:13.7 | East Grand Rapids | | |
| 32. | 9 | Nick MacGeorge | 18:14.1 | East Grand Rapids | | |
| 33. | 10 | Miles Fischer | 18:15.3 | Chelsea | | |
| 34. | 11 | Daniel Burke | 18:15.9 | East Grand Rapids | | |
| 35. | 9 | Tony Cornejo | 18:17.2 | Ionia | | |
| 36. | 12 | Tanner Young | 18:17.5 | Clio | | |
| 37. | 12 | Henry Spies | 18:17.5 | Richland Gull Lake | | |
| 38. | 11 | Fernando Vicente | 18:18.2 | East Grand Rapids | | |
| 39. | 11 | Caden New | 18:19.4 | Richland Gull Lake | | |
| 40. | 11 | Andrew Stults | 18:19.6 | Richland Gull Lake | | |
| 41. | 10 | Nate Westenbroek | 18:20.1 | Grand Rapids Christian | | |
| 42. | 11 | Adam Bowersox | 18:20.3 | Chelsea | | |
| 43. | 12 | Paul Kurian | 18:21.2 | Grand Rapids Forest Hills ... | | |
| 44. | 9 | Balion Powell | 18:21.4 | DeWitt | | |
| 45. | 11 | Caleb Mounts | 18:22.0 | Grand Rapids Forest Hills ... | | |
| 46. | 11 | Zachary Drees | 18:22.7 | Grand Rapids Catholic Cent... | | |
| 47. | 9 | Kurt Egelhaaf | 18:23.4 | St. Joseph | | |
| 48. | 11 | Marcus James | 18:24.1 | Grand Rapids Christian | | |
| 49. | 9 | Grant Davis | 18:24.7 | East Grand Rapids | | |
| 50. | 11 | Dan Williamson | 18:28.9 | St. Clair | | |
| 51. | 10 | Matt Proegler | 18:30.2 | Chelsea | | |
| 52. | 10 | Hans Leisman | 18:30.5 | Grand Rapids Christian | | |
| 53. | 12 | Tyler Lenzi | 18:31.0 | Clio | | |
| 54. | 11 | Macon Boes | 18:36.8 | St. Clair | | |
| 55. | 12 | Tobiah Vincent | 18:39.0 | St. Joseph | | |
| 56. | 10 | Brendan Schneider | 18:39.6 | Grand Rapids Forest Hills ... | | |
| 57. | 9 | Grant Bradman | 18:43.5 | Grand Rapids South Christian | | |
| 58. | 9 | Matt Montgomery | 18:44.4 | Stevensville Lakeshore | | |
| 59. | 10 | Gregory Smith | 18:45.8 | St. Joseph | | |
| 60. | 11 | Davis Allison | 18:46.6 | Spring Lake | | |
| 61. | 9 | Josh Bray | 18:47.9 | Cedar Springs | | |
| 62. | 10 | Carson Nieuwenhuis | 18:48.5 | Wayland Union | | |
| 63. | 12 | Zach Derylo | 18:54.3 | Forest Hills Eastern | | |
| 64. | 12 | Michael Franks | 18:55.3 | Clio | | |
| 65. | 10 | Joe Puzycki | 18:55.5 | Stevensville Lakeshore | | |
| 66. | 11 | Manny Morales | 18:55.7 | Grand Rapids Catholic Cent... | | |
| 67. | 11 | Jadan Norman | 18:55.7 | Vicksburg | | |
| 68. | 12 | Jesse Ruter | 18:56.4 | Spring Lake | | |
| 69. | 12 | Toni Divic | 18:56.5 | Grand Rapids Forest Hills ... | | |
| 70. | 9 | Johnathan Schaefer | 18:57.9 | Grand Rapids Forest Hills ... | | |
| 71. | 11 | Kyle McGregor | 18:58.1 | Chelsea | | |
| 72. | 11 | Adam Fethke | 18:58.4 | Grand Rapids Christian | | |
| 73. | 11 | Elliot Miller | 18:58.7 | Forest Hills Eastern | | |
| 74. | 9 | Sam Guikema | 18:59.0 | Grand Rapids South Christian | | |
| 75. | 11 | Connor Bolthouse | 19:00.3 | Spring Lake | | |
| 76. | 11 | Jason Black-Joseph | 19:01.1 | Allendale | | |
| 77. | 11 | Jake Gunnoe | 19:02.2 | Grand Rapids Christian | | |
| 78. | 11 | Chris Collins | 19:02.3 | Grand Rapids Catholic Cent... | | |
| 79. | 12 | Cullen Newstead | 19:02.9 | St. Joseph | | |
| 80. | 12 | AJ Euscher | 19:04.3 | Spring Lake | | |
| 81. | 12 | Austin O'Malley | 19:04.7 | Holland Christian | | |
| 82. | 11 | Hunter Foco | 19:05.0 | Zeeland West | | |
| 83. | 12 | Jordan Meyer | 19:05.3 | Holland Christian | | |
| 84. | 10 | Mitchell Henschel | 19:06.4 | Chelsea | | |
| 85. | 12 | Austin Elliott | 19:06.8 | Spring Lake | | |
| 86. | 12 | Joshua Clark | 19:07.5 | Spring Lake | | |
| 87. | 9 | Lucas Piekarski | 19:08.6 | Spring Lake | | |
| 88. | 12 | Ian Olive | 19:08.8 | Grand Rapids Forest Hills ... | | |
| 89. | 11 | Conner Carrico | 19:11.4 | East Grand Rapids | | |
| 90. | 9 | Owen Purdue | 19:13.3 | Grand Rapids Forest Hills ... | | |
| 91. | 11 | Matt Graves | 19:13.4 | Grand Rapids Catholic Cent... | | |
| 92. | 11 | Connor Dood | 19:13.6 | Grand Rapids South Christian | | |
| 93. | 10 | Dan Pelyhes | 19:13.7 | Richland Gull Lake | | |
| 94. | 11 | Sam DeWitt | 19:14.1 | Grand Rapids Christian | | |
| 95. | 11 | David Hartwell | 19:14.2 | St. Joseph | | |
| 96. | 12 | James Westenbroek | 19:14.3 | Holland Christian | | |
| 97. | 10 | Nick Thoman | 19:14.7 | Richland Gull Lake | | |
| 98. | 11 | Mitchell Fevig | 19:15.2 | Vicksburg | | |
| 99. | 9 | Sam Austin | 19:15.6 | Allendale | | |
| 100. | 11 | Gordon Groenhout | 19:15.7 | Grand Rapids Christian | | |
| 101. | 11 | Matt Hulet | 19:16.4 | Spring Lake | | |
| 102. | 11 | Dylan Finch | 19:16.6 | Cedar Springs | | |
| 103. | 11 | Luke Vaness | 19:16.9 | Ionia | | |
| 104. | 11 | Hadley Gaines | 19:17.4 | East Grand Rapids | | |
| 105. | 12 | Benjamin Hall | 19:19.0 | Grand Rapids Forest Hills ... | | |
| 106. | 10 | Jake Dewey | 19:19.2 | Allendale | | |
| 107. | 11 | Ryan Meerman | 19:19.4 | Coopersville | | |
| 108. | 12 | Harrington Boes | 19:19.7 | St. Clair | | |
| 109. | 10 | Joe Abel | 19:20.1 | Carleton Airport | | |
| 110. | 9 | Kole Krauss | 19:20.8 | Grand Rapids Catholic Cent... | | |
| 111. | 9 | Matthew Strouse | 19:21.4 | Stevensville Lakeshore | | |
| 112. | 11 | Nick Greydanus | 19:21.4 | Holland Christian | | |
| 113. | 11 | Drew Koski | 19:21.8 | East Grand Rapids | | |
| 114. | 11 | Shawn Brew | 19:22.1 | Three Rivers | | |
| 115. | 11 | Jared Wendland | 19:23.0 | Stevensville Lakeshore | | |
| 116. | 12 | Brady Hostetler | 19:24.4 | Richland Gull Lake | | |
| 117. | 9 | Alex Kean | 19:24.5 | Clio | | |
| 118. | 9 | Matt Lamontagne | 19:24.7 | St. Clair | | |
| 119. | 12 | Grant DenBesten | 19:27.3 | Holland Christian | | |
| 120. | 9 | Ty Luginbuhl | 19:28.1 | Ionia | | |
| 121. | 9 | Kyle Ogata | 19:28.3 | Stevensville Lakeshore | | |
| 122. | 11 | Paul Zamarripa | 19:28.9 | East Grand Rapids | | |
| 123. | 12 | Alec Hall | 19:29.0 | Clio | | |
| 124. | 10 | Sebastian Suntheimer | 19:30.2 | Chelsea | | |
| 125. | 9 | Reece DiGiovanna | 19:32.2 | Grand Rapids Catholic Cent... | | |
| 126. | 11 | Micah Carpenter | 19:33.8 | Grand Rapids Christian | | |
| 127. | 9 | Jake Van Ess | 19:34.3 | Ionia | | |
| 128. | 9 | Tristin Ward | 19:34.4 | Ionia | | |
| 129. | 12 | Charlie Robertson | 19:34.8 | Grand Rapids Christian | | |
| 130. | 9 | Andrew Hanna | 19:34.9 | DeWitt | | |
| 131. | 12 | Sam Lupina | 19:35.1 | Clio | | |
| 132. | 9 | Will Cadwell | 19:36.0 | South Haven | | |
| 133. | 9 | Keon Rick | 19:36.5 | Spring Lake | | |
| 134. | 10 | Aaron Santucci | 19:36.7 | Grand Rapids South Christian | | |
| 135. | 11 | Dennis Huffman | 19:37.5 | Wayland Union | | |
| 136. | 12 | Eli Attruia | 19:37.7 | Wayland Union | | |
| 137. | 10 | Jacob Houser | 19:38.0 | Zeeland West | | |
| 138. | 10 | Roy Schmidt | 19:38.6 | Chelsea | | |
| 139. | 12 | Jon Mudde | 19:39.0 | Grand Rapids Christian | | |
| 140. | 11 | Ryan Myers | 19:39.4 | Clio | | |
| 141. | 9 | Austin Hallam | 19:42.7 | Vicksburg | | |
| 142. | 12 | Bahen Hurst | 19:44.2 | Grand Rapids Forest Hills ... | | |
| 143. | 11 | Nate Griffioen | 19:44.5 | Grand Rapids Christian | | |
| 144. | 10 | Nick Young | 19:44.5 | Grand Rapids Forest Hills ... | | |
| 145. | 10 | Mason Witte | 19:46.9 | Hudsonville Unity Christian | | |
| 146. | 11 | Bastian Bouman | 19:47.0 | Grand Rapids Christian | | |
| 147. | 12 | Andrew Shown | 19:47.5 | Carleton Airport | | |
| 148. | 12 | Josh Salos | 19:47.8 | Ionia | | |
| 149. | 12 | Quentin Florido | 19:48.4 | Grand Rapids Catholic Cent... | | |
| 150. | 11 | Trevor Wisneski | 19:48.4 | Grand Rapids Christian | | |
| 151. | 10 | Nick Busby | 19:48.9 | Richland Gull Lake | | |
| 152. | 9 | Jared Unger | 19:49.5 | St. Clair | | |
| 153. | 10 | Drew Brown | 19:49.8 | Stevensville Lakeshore | | |
| 154. | 10 | Jackson Lambdin | 19:50.1 | Allendale | | |
| 155. | 9 | Grant Nelson | 19:50.4 | Zeeland West | | |
| 156. | 9 | John Wendland | 19:50.9 | Stevensville Lakeshore | | |
| 157. | 11 | Tyler Millard | 19:51.3 | Grand Rapids Forest Hills ... | | |
| 158. | 11 | Brett Robbins | 19:51.4 | DeWitt | | |
| 159. | 9 | Spencer Cripps | 19:52.4 | Vicksburg | | |
| 160. | 11 | Noah Carpenter | 19:53.0 | Grand Rapids Christian | | |
| 161. | 9 | Matt Felice | 19:53.9 | Ionia | | |
| 162. | 9 | Brandon Harthorn | 19:54.7 | Cedar Springs | | |
| 163. | 9 | Aaron Zuverink | 19:55.6 | Grand Rapids South Christian | | |
| 164. | 9 | Geoffrey Campbell | 19:57.0 | Richland Gull Lake | | |
| 165. | 11 | Johan Lee | 19:57.6 | Grand Rapids Christian | | |
| 166. | 9 | Jason Klaasen | 19:58.3 | Hudsonville Unity Christian | | |
| 167. | 10 | Tyler Hay | 19:58.3 | Three Rivers | | |
| 168. | 11 | Andrew Folkerts | 20:00.0 | Hudsonville Unity Christian | | |
| 169. | 10 | Nate Rieger | 20:01.8 | Allendale | | |
| 170. | 10 | Zachary Vernum | 20:03.1 | Grand Rapids Catholic Cent... | | |
| 171. | 12 | Collin Kieft | 20:08.5 | Spring Lake | | |
| 172. | 11 | Ian Marzke | 20:08.9 | St. Joseph | | |
| 173. | 9 | Benjamin Smart | 20:10.0 | Zeeland West | | |
| 174. | 12 | Russell Harms | 20:11.5 | Wayland Union | | |
| 175. | 10 | Adam Sremba | 20:12.8 | Grand Rapids Catholic Cent... | | |
| 176. | 9 | Ryan Gill | 20:13.1 | DeWitt | | |
| 177. | 11 | Sam Meinema | 20:13.8 | Holland Christian | | |
| 178. | 9 | Dillon Luymes | 20:15.6 | Grand Rapids Christian | | |
| 179. | 9 | Henry Feikema | 20:18.1 | Holland Christian | | |
| 180. | 11 | Jake Jackson | 20:18.3 | Holland Christian | | |
| 181. | 10 | Ryan Ostrander | 20:18.5 | Clio | | |
| 182. | 11 | Schylar Grenz | 20:18.6 | Holland Christian | | |
| 183. | 9 | Anthony Mule | 20:19.4 | St. Clair | | |
| 184. | 9 | Ethan Grayeb | 20:19.5 | Grand Rapids Forest Hills ... | | |
| 185. | 11 | Jason Walters | 20:19.8 | Holland Christian | | |
| 186. | 9 | Tim VanDyke | 20:20.7 | Hudsonville Unity Christian | | |
| 187. | 9 | Cameron Kyser | 20:20.8 | Spring Lake | | |
| 188. | 9 | Jacob Walker | 20:21.0 | Cedar Springs | | |
| 189. | 10 | Noah Wolters | 20:21.1 | Hudsonville Unity Christian | | |
| 190. | 9 | Kyle Elderkin | 20:23.7 | East Grand Rapids | | |
| 191. | 11 | Jeffery McLaughlin | 20:25.6 | DeWitt | | |
| 192. | 11 | Alex Kuhn | 20:26.0 | Spring Lake | | |
| 193. | 12 | Conor Heaney | 20:26.4 | Chelsea | | |
| 194. | 9 | Jacob Bol | 20:27.6 | Holland Christian | | |
| 195. | 9 | Foster Woodruff | 20:27.7 | St. Joseph | | |
| 196. | 10 | Tyler Darr | 20:31.9 | St. Joseph | | |
| 197. | 11 | Clint Downer | 20:32.6 | Grand Rapids Catholic Cent... | | |
| 198. | 11 | Tyler Christensen | 20:33.3 | Grand Rapids Forest Hills ... | | |
| 199. | 11 | Ryan Tomer | 20:33.4 | Richland Gull Lake | | |
| 200. | 9 | Scott Schueneman | 20:33.6 | Stevensville Lakeshore | | |
| 201. | 11 | Mitch Barnum | 20:34.0 | Vicksburg | | |
| 202. | 12 | Cameron Bunker | 20:34.3 | East Grand Rapids | | |
| 203. | 9 | Skylar DeLaTorre | 20:35.3 | Stevensville Lakeshore | | |
| 204. | 10 | Aidan Edmunds | 20:36.0 | Holland Christian | | |
| 205. | 12 | Sam Schmitt | 20:36.2 | Spring Lake | | |
| 206. | 12 | Zach Teel | 20:36.6 | Richland Gull Lake | | |
| 207. | 10 | George Beeman | 20:37.4 | Coldwater | | |
| 208. | 12 | Dustin Edwards | 20:38.0 | Clio | | |
| 209. | 10 | Jacob Doerr | 20:38.2 | Spring Lake | | |
| 210. | 10 | Sam Layton | 20:38.2 | Coopersville | | |
| 211. | 10 | Grant Lardieri | 20:39.0 | Grand Rapids Forest Hills ... | | |
| 212. | 9 | Austin VanStrate | 20:40.5 | Spring Lake | | |
| 213. | 11 | Evan Mongrie | 20:41.1 | Chelsea | | |
| 214. | 11 | Jared Ursuy | 20:41.6 | Clio | | |
| 215. | 9 | Joshua Boers | 20:42.3 | Grand Rapids South Christian | | |
| 216. | 11 | Brandon Snippe | 20:42.3 | Fremont | | |
| 217. | 9 | Kyle Kalinowski | 20:42.9 | Zeeland West | | |
| 218. | 9 | Harrison Burke | 20:44.1 | East Grand Rapids | | |
| 219. | 9 | Matt Suarez | 20:44.5 | Coopersville | | |
| 220. | 10 | Chris Walstra | 20:45.7 | Grand Rapids South Christian | | |
| 221. | 11 | Joe St. Amond | 20:46.2 | St. Joseph | | |
| 222. | 10 | Mark Lindquist | 20:46.7 | Spring Lake | | |
| 223. | 9 | Matt Bliss | 20:49.0 | Forest Hills Eastern | | |
| 224. | 9 | Alex Osterbaan | 20:49.2 | Grand Rapids Christian | | |
| 225. | 9 | Ethan Lewis | 20:49.7 | Cedar Springs | | |
| 226. | 11 | Logan Gaastra | 20:50.4 | Grand Rapids Christian | | |
| 227. | 10 | Tyler Schraudt | 20:51.7 | Allendale | | |
| 228. | 9 | Jared Walter | 20:51.9 | Grand Rapids South Christian | | |
| 229. | 12 | Matt Hannan | 20:52.5 | Stevensville Lakeshore | | |
| 230. | 12 | David Robach | 20:52.7 | Grand Rapids Catholic Cent... | | |
| 231. | 10 | Andrew Savel | 20:53.2 | Carleton Airport | | |
| 232. | 11 | Jacob Connor | 20:56.9 | Clio | | |
| 233. | 9 | Jesse Zandee | 20:58.3 | Grand Rapids Christian | | |
| 234. | 10 | Corey Godden | 20:59.5 | Chippewa Hills | | |
| 235. | 12 | Travis Wiley | 20:59.7 | Vicksburg | | |
| 236. | 11 | David Southwell | 20:59.7 | East Grand Rapids | | |
| 237. | 9 | Jacob Wood | 20:59.8 | Chippewa Hills | | |
| 238. | 10 | Jon Quist | 21:00.2 | Hudsonville Unity Christian | | |
| 239. | 10 | Zack Freye | 21:00.4 | St. Joseph | | |
| 240. | 10 | Billy Burger | 21:02.5 | Clio | | |
| 241. | 12 | Johnathan Killeen | 21:05.8 | Grand Rapids Forest Hills ... | | |
| 242. | 10 | Trevor Wason | 21:09.4 | Richland Gull Lake | | |
| 243. | 10 | John Wade | 21:12.5 | Grand Rapids Forest Hills ... | | |
| 244. | 10 | Joel Harkema | 21:13.0 | Hudsonville Unity Christian | | |
| 245. | 11 | Caleb Stormont | 21:14.5 | Stevensville Lakeshore | | |
| 246. | 10 | Tatsumi Cline | 21:16.3 | Coopersville | | |
| 247. | 11 | Corey Fron | 21:17.5 | Chippewa Hills | | |
| 248. | 10 | Sean Garrett | 21:19.4 | Vicksburg | | |
| 249. | 11 | Nick Lyon | 21:20.6 | Zeeland West | | |
| 250. | 9 | Tyler Frease | 21:24.2 | Chippewa Hills | | |
| 251. | 11 | Connor Leonard | 21:25.3 | Grand Rapids Catholic Cent... | | |
| 252. | 9 | Nathan Timmer | 21:27.9 | Allendale | | |
| 253. | 12 | Taylor Boeve | 21:28.9 | Holland Christian | | |
| 254. | 9 | Cody Kammers | 21:29.0 | Ionia | | |
| 255. | 11 | Ryan Brown | 21:29.2 | Grand Rapids Catholic Cent... | | |
| 256. | 10 | Colt Seeley | 21:29.7 | Allendale | | |
| 257. | 10 | Nathan Sands | 21:32.2 | Forest Hills Eastern | | |
| 258. | 9 | Sam Eppel | 21:34.5 | Holland Christian | | |
| 259. | 9 | Luke Verhoef | 21:36.2 | Grand Rapids South Christian | | |
| 260. | 12 | Sam Atsma | 21:36.3 | Grand Rapids South Christian | | |
| 261. | 10 | Ryan Carlson | 21:36.4 | Hastings | | |
| 262. | 11 | Elijah Lemkuil | 21:37.9 | Holland Christian | | |
| 263. | 10 | Alex Rosencrance | 21:38.1 | Grand Rapids Forest Hills ... | | |
| 264. | 11 | Ben Devries | 21:39.2 | Hudsonville Unity Christian | | |
| 265. | 12 | Glen Wang | 21:39.3 | Grand Rapids Christian | | |
| 266. | 10 | Cody Vongprachan | 21:39.8 | Zeeland West | | |
| 267. | 9 | Nathaniel Wadas | 21:39.8 | South Haven | | |
| 268. | 9 | Peter Lillich | 21:40.4 | East Grand Rapids | | |
| 269. | 11 | Scotty Cunningham | 21:40.9 | Richland Gull Lake | | |
| 270. | 9 | Garrett Huizenga | 21:41.1 | Holland Christian | | |
| 271. | 10 | Jake Timmerman | 21:46.4 | Hudsonville Unity Christian | | |
| 272. | 9 | John Vaarberg | 21:47.8 | Ionia | | |
| 273. | 12 | Jacob Besaw | 21:49.6 | Clio | | |
| 274. | 9 | Logan Wilkerson | 21:51.2 | Stevensville Lakeshore | | |
| 275. | 9 | Joel Karsten | 21:51.4 | Grand Rapids Christian | | |
| 276. | 9 | Caleb Kahrs | 21:54.5 | Coopersville | | |
| 277. | 11 | Andrew Cole | 21:55.9 | Wayland Union | | |
| 278. | 11 | Bennett Featherstone | 21:56.3 | Fremont | | |
| 279. | 11 | Michael Gorton | 21:57.3 | Stevensville Lakeshore | | |
| 280. | 12 | Jazz Arnold | 21:59.7 | Wayland Union | | |
| 281. | 9 | Connor Denning | 22:01.8 | Spring Lake | | |
| 282. | 10 | Sean Lyons | 22:03.1 | Chelsea | | |
| 283. | 11 | Zach Norris | 22:04.6 | DeWitt | | |
| 284. | 9 | Nick Surratt | 22:06.7 | Hastings | | |
| 285. | 9 | Austin Zambroni | 22:06.7 | Richland Gull Lake | | |
| 286. | 12 | Nick Liquigli | 22:07.1 | Grand Rapids Forest Hills ... | | |
| 287. | 10 | Steven Bacon | 22:08.6 | Grand Rapids Forest Hills ... | | |
| 288. | 11 | Nick Gill | 22:16.9 | Grand Rapids Christian | | |
| 289. | 11 | Josh Stuyfzand | 22:22.0 | Grand Rapids Christian | | |
| 290. | 10 | Andrew Wells | 22:23.2 | St. Joseph | | |
| 291. | 9 | Zack Oswald | 22:25.6 | Allendale | | |
| 292. | 12 | Nick Lentz | 22:26.2 | DeWitt | | |
| 293. | 11 | Dylan Billings | 22:27.2 | Edwardsburg | | |
| 294. | 11 | Matt Deboer | 22:28.7 | Hudsonville Unity Christian | | |
| 295. | 11 | Connor Caple | 22:30.3 | Stevensville Lakeshore | | |
| 296. | 10 | Reid Walters | 22:32.6 | Edwardsburg | | |
| 297. | 9 | Josh Cole | 22:34.3 | Chelsea | | |
| 298. | 12 | Brandon Secord | 22:39.8 | Hastings | | |
| 299. | 11 | Ross Young | 22:44.5 | Spring Lake | | |
| 300. | 9 | Ryan Reisbig | 22:44.5 | Ionia | | |
| 301. | 10 | Ian Klahre | 22:46.3 | Fremont | | |
| 302. | 11 | Eric Hoskins | 22:46.7 | Hudsonville Unity Christian | | |
| 303. | 10 | Owen Beshears | 22:48.6 | Stevensville Lakeshore | | |
| 304. | 11 | Kyle Ezinga | 22:53.1 | Grand Rapids South Christian | | |
| 305. | 12 | Will Kauffman | 22:56.6 | Holland Christian | | |
| 306. | 9 | Joseph Prusinski | 22:57.7 | Forest Hills Eastern | | |
| 307. | 10 | Jacob Baylor | 23:01.4 | Edwardsburg | | |
| 308. | 9 | Ben Patten | 23:05.9 | Coopersville | | |
| 309. | 10 | Joseph DeGrandchamp | 23:07.0 | South Haven | | |
| 310. | 9 | Noah Marzke | 23:07.0 | St. Joseph | | |
| 311. | 9 | Alex Margol | 23:11.7 | Richland Gull Lake | | |
| 312. | 11 | Casey Schull | 23:14.1 | Three Rivers | | |
| 313. | 12 | Eric Rietveld | 23:16.0 | Holland Christian | | |
| 314. | 10 | Drew Sujek | 23:22.9 | Chelsea | | |
| 315. | 9 | Joe Middleton | 23:25.7 | Wayland Union | | |
| 316. | 12 | Matt Schepers | 23:26.5 | Grand Rapids South Christian | | |
| 317. | 9 | Michael Conard | 23:33.8 | Stevensville Lakeshore | | |
| 318. | 10 | Nick Beauchamp | 23:33.9 | Hastings | | |
| 319. | 9 | David Tuttle | 23:45.6 | Grand Rapids South Christian | | |
| 320. | 9 | Jonah Jackson | 23:51.5 | Holland Christian | | |
| 321. | 11 | Austin Reardon | 23:55.3 | Chelsea | | |
| 322. | 9 | Ryan Carmody | 23:57.4 | Stevensville Lakeshore | | |
| 323. | 10 | Noah Abbott | 24:00.5 | Grand Rapids South Christian | | |
| 324. | 9 | Brett Ermer | 24:06.0 | Hudsonville Unity Christian | | |
| 325. | 9 | Levi Talsma | 24:12.4 | Hudsonville Unity Christian | | |
| 326. | 9 | David Stults | 24:53.8 | Richland Gull Lake | | |
| 327. | 9 | Jonathon Wolfarth | 25:15.2 | Cedar Springs | | |
| 328. | 11 | Jacob Huff | 25:18.4 | Three Rivers | | |
| 329. | 10 | David Datema | 25:30.6 | Holland Christian | | |
| 330. | 11 | Kyle Stewart | 25:31.3 | Chippewa Hills | | |
| 331. | 9 | Jesse Seiler | 25:33.4 | Edwardsburg | | |
| 332. | 9 | Robert Perry | 26:07.3 | Hastings | | |
| 333. | 10 | Joe Jackson | 26:13.3 | South Haven | | |
| 334. | 11 | Ben Jordan | 26:19.8 | Fremont | | |
| 335. | 9 | Matt Orsillo | 26:23.9 | Stevensville Lakeshore | | |
| 336. | 11 | Dominic McArthur | 26:24.0 | Hastings | | |
| 337. | 11 | Robert Heinrich | 26:25.0 | South Haven | | |
| 338. | 9 | Mike McKee | 26:58.3 | Grand Rapids Christian | | |
| 339. | 11 | Sam DeVries | 27:32.2 | Grand Rapids South Christian | | |
| 340. | 9 | Mitchell Hawkins | 27:35.6 | Fremont | | |
| 341. | 12 | Justice Hetmansperger | 27:48.3 | Three Rivers | | |
| 342. | 9 | Nico Ravosa | 28:10.0 | Edwardsburg | | |
| 343. | 10 | Damon Cove | 28:11.6 | Hastings | | |
| 344. | 9 | Daniel Grace | 28:23.9 | Three Rivers | | |
| 1. | 12 | Andy Bowman | 15:30.7 | Marlette | | |
| 2. | 12 | Zachary Nowicki | 15:31.7 | Grandville Calvin Christian | | |
| 3. | 12 | Bryce Stroede | 15:37.3 | Hanover-Horton | | |
| 4. | 12 | Andrew Rylaarsdam | 15:41.9 | Grandville Calvin Christian | | |
| 5. | 11 | Nate Silvey | 16:13.7 | Grand Rapids NorthPointe C... | | |
| 6. | 12 | Jacob Bowman | 16:14.7 | Marlette | | |
| 7. | 12 | Alec Armstrong | 16:17.9 | Stockbridge | | |
| 8. | 11 | Zach Wehner | 16:21.3 | Schoolcraft | | |
| 9. | 11 | Cameron Bredice | 16:22.9 | Bridgman | | |
| 10. | 11 | Hunter Nivison | 16:26.3 | Clare | | |
| 11. | 12 | Kirk Love | 16:32.3 | Watervliet | | |
| 12. | 10 | Jake Keena | 16:35.5 | Kingsley | | |
| 13. | 12 | Brent Wegner | 16:35.5 | Freeland | | |
| 14. | 11 | Eli Poth | 16:36.7 | Marlette | | |
| 15. | 11 | Will Wilson | 16:40.0 | Kent City | | |
| 16. | 10 | Alex Stowell | 16:43.2 | Freeland | | |
| 17. | 11 | Zach Hardway | 16:46.1 | Hillsdale | | |
| 18. | 11 | Karl Berkemeier | 16:49.7 | Jackson Lumen Christi | | |
| 19. | 12 | Garret Bila | 16:49.7 | Freeland | | |
| 20. | 10 | Ryan Gibson | 16:50.0 | Jackson Lumen Christi | | |
| 21. | 12 | Charlie Ludlow | 16:50.0 | Jackson Lumen Christi | | |
| 22. | 9 | Nathaniel Baird | 16:53.0 | Stockbridge | | |
| 23. | 11 | Brock Thumm | 16:55.5 | Watervliet | | |
| 24. | 10 | Zack Richards | 16:55.9 | Kalamazoo Comstock | | |
| 25. | 10 | Colin McNally | 16:57.0 | Ann Arbor Gabriel Richard | | |
| 26. | 12 | Mathew Titus | 16:58.2 | Marlette | | |
| 27. | 12 | Jarryd Calhoun | 16:58.9 | Delton-Kellogg | | |
| 28. | 9 | Austin Shepherd | 16:59.2 | Stockbridge | | |
| 29. | 10 | Kyle Bailey | 17:00.2 | Benzie Central | | |
| 30. | 12 | Brandon Frank | 17:02.4 | Farwell | | |
| 31. | 11 | Patrick Soltis | 17:03.0 | Jackson Lumen Christi | | |
| 32. | 10 | Lucas Crisanti | 17:04.2 | Hanover-Horton | | |
| 33. | 11 | Justin Prange | 17:04.9 | Benzie Central | | |
| 34. | 12 | Jarret Deisch | 17:05.9 | Manistee | | |
| 35. | 12 | Kage Johnson | 17:07.2 | Jonesville | | |
| 36. | 12 | Cameron Jones | 17:10.4 | Holland Black River | | |
| 37. | 11 | Ismael Halaweh | 17:11.0 | Benzie Central | | |
| 38. | 10 | Max Smith | 17:12.2 | Newaygo | | |
| 39. | 10 | Jared Bluhm | 17:12.5 | Benzie Central | | |
| 40. | 11 | Michael Foote | 17:13.4 | Watervliet | | |
| 41. | 12 | Tim Yake | 17:14.2 | Freeland | | |
| 42. | 9 | Brock Eves | 17:14.2 | Hillsdale | | |
| 43. | 12 | Nick Thomas | 17:15.9 | Bath | | |
| 44. | 12 | Luke Schultz | 17:16.1 | Farwell | | |
| 45. | 11 | Dave Jones | 17:16.6 | Constantine | | |
| 46. | 12 | Lucas Combs | 17:16.9 | Clare | | |
| 47. | 10 | Austin Fillmore | 17:19.4 | Stockbridge | | |
| 48. | 11 | Andrew Hayden | 17:19.4 | Benzie Central | | |
| 49. | 10 | Kyler Phillips | 17:19.7 | Clare | | |
| 50. | 12 | Alex Clark | 17:21.3 | Grandville Calvin Christian | | |
| 51. | 12 | Derryl Poynor | 17:22.2 | Benzie Central | | |
| 52. | 10 | Joseph Britt | 17:23.1 | Holland Black River | | |
| 53. | 9 | Brendan Daly | 17:23.5 | Watervliet | | |
| 54. | 11 | Matt Subject | 17:23.7 | Leslie | | |
| 55. | 12 | Marshall Morehead | 17:24.2 | Grandville Calvin Christian | | |
| 56. | 9 | Abe Visser | 17:24.4 | Grandville Calvin Christian | | |
| 57. | 11 | Andrew Sines | 17:24.4 | Jonesville | | |
| 58. | 11 | Steven Foster | 17:24.8 | Berrien Springs | | |
| 59. | 12 | Evan Upshur | 17:25.0 | Stockbridge | | |
| 60. | 11 | Ruben Rodriguez | 17:25.9 | Holland Black River | | |
| 61. | 12 | Jacob Hop | 17:27.5 | Grandville Calvin Christian | | |
| 62. | 9 | Matt Ring | 17:28.3 | Schoolcraft | | |
| 63. | 12 | John Wamhoff | 17:29.0 | Hopkins | | |
| 64. | 12 | Paul Rankin | 17:29.2 | Grass Lake | | |
| 65. | 12 | Glenn Fitkin | 17:29.5 | Freeland | | |
| 66. | 10 | Kevin Spicer-Torres | 17:29.5 | Clare | | |
| 67. | 11 | Canyon Raburn | 17:31.1 | Jackson Lumen Christi | | |
| 68. | 11 | Neal Malakowski | 17:33.0 | Schoolcraft | | |
| 69. | 12 | Kaleb Glowacki | 17:33.9 | Shepherd | | |
| 70. | 9 | Noah Robotham | 17:36.8 | Benzie Central | | |
| 71. | 12 | Nick Ellison | 17:38.2 | Grant | | |
| 72. | 11 | Garrett Tremaine | 17:38.3 | Leslie | | |
| 73. | 10 | Ishmael Hodge | 17:39.1 | Bangor | | |
| 74. | 11 | Kyle Allen | 17:39.3 | Napoleon | | |
| 75. | 10 | Shayne Palmer | 17:39.8 | Napoleon | | |
| 76. | 11 | Darick Wilson | 17:41.1 | Newaygo | | |
| 77. | 10 | Patrick Lynch | 17:41.7 | Watervliet | | |
| 78. | 10 | Bryce Cameron | 17:42.2 | Manistee | | |
| 79. | 12 | David McClendon | 17:43.4 | Watervliet | | |
| 80. | 10 | Travis Sutton | 17:45.8 | Jonesville | | |
| 81. | 12 | Jonny Bailey | 17:46.6 | Manistee | | |
| 82. | 11 | William Spagnuolo | 17:49.4 | Bath | | |
| 83. | 11 | Justin Keller | 17:51.4 | Leslie | | |
| 84. | 11 | Nick Veine | 17:51.6 | Manistee | | |
| 85. | 11 | Joe Bowen | 17:51.8 | Farwell | | |
| 86. | 12 | Josh Hutchinson | 17:53.1 | Shepherd | | |
| 87. | 11 | Jacob Pifer | 17:53.3 | Shepherd | | |
| 88. | 12 | Chris Martinez | 17:54.9 | Flint Powers Catholic | | |
| 89. | 12 | Brandon Enders | 17:54.9 | Bridgman | | |
| 90. | 12 | Brian Dillon | 17:55.1 | Napoleon | | |
| 91. | 12 | Theo Haubold | 17:56.6 | Hartford | | |
| 92. | 12 | Matt LeDuc | 17:57.4 | Flint Powers Catholic | | |
| 93. | 10 | Alex Hoop | 17:57.8 | Jackson Lumen Christi | | |
| 94. | 10 | Kaleb Losey | 17:59.2 | Stockbridge | | |
| 95. | 11 | Matt Childs | 18:01.0 | Hanover-Horton | | |
| 96. | 12 | Isaac Pringle | 18:02.1 | Hanover-Horton | | |
| 97. | 11 | Tom Schutter | 18:02.2 | Kent City | | |
| 98. | 11 | Jacob O'Brien | 18:04.2 | Flint Powers Catholic | | |
| 99. | 12 | Nick Shaver | 18:06.8 | Marlette | | |
| 100. | 9 | Rivver Dunham | 18:07.4 | Newaygo | | |
| 101. | 12 | Abel DeVries | 18:08.9 | Grandville Calvin Christian | | |
| 102. | 11 | Luke Driesen | 18:08.9 | Flint Powers Catholic | | |
| 103. | 11 | Colin Mead | 18:09.0 | Berrien Springs | | |
| 104. | 10 | Andrew Polasek | 18:09.3 | Newaygo | | |
| 105. | 10 | Richard Durecki | 18:10.3 | Kingsley | | |
| 106. | 11 | Tristan Swartout | 18:10.6 | Hanover-Horton | | |
| 107. | 10 | Valentin Casiano | 18:11.9 | Watervliet | | |
| 108. | 11 | Steven Robart | 18:13.1 | Grant | | |
| 109. | 10 | Mitchell Lilley | 18:13.9 | Stockbridge | | |
| 110. | 12 | Jake Hall | 18:14.2 | Frankenmuth | | |
| 111. | 10 | Ryan Silvestri | 18:15.1 | Napoleon | | |
| 112. | 11 | Dylan Jenerou | 18:15.8 | Grant | | |
| 113. | 10 | Tyler Wheeler | 18:16.8 | Shepherd | | |
| 114. | 11 | Dylan Zenner | 18:17.5 | Kingsley | | |
| 115. | 9 | Billy Dowd | 18:18.1 | Napoleon | | |
| 116. | 10 | Ryan Trahan | 18:18.6 | Freeland | | |
| 117. | 12 | Justin King | 18:20.4 | Freeland | | |
| 118. | 9 | Brenden Jones | 18:21.0 | Holland Black River | | |
| 119. | 12 | Adam Bauer | 18:22.0 | Napoleon | | |
| 120. | 11 | Steven Wiltse | 18:22.3 | Leslie | | |
| 121. | 9 | Zach Abbee | 18:23.2 | Hanover-Horton | | |
| 122. | 9 | Jesse Saxton | 18:23.5 | Grant | | |
| 123. | 10 | Koty Conaty | 18:24.2 | Leslie | | |
| 124. | 9 | Connor Silvestri | 18:24.7 | Napoleon | | |
| 125. | 11 | Calvin Scott | 18:24.8 | Schoolcraft | | |
| 126. | 9 | Jacob Jagielski | 18:25.1 | Jonesville | | |
| 127. | 11 | Nathan Howell | 18:25.8 | Grass Lake | | |
| 128. | 11 | Linden Waling | 18:26.0 | Parchment | | |
| 129. | 10 | Ben Naimo | 18:26.4 | Grand Rapids NorthPointe C... | | |
| 130. | 10 | Isaac Hartley | 18:28.0 | Constantine | | |
| 131. | 10 | Marco Carrillo | 18:28.1 | Bangor | | |
| 132. | 11 | David Saucedo | 18:29.5 | Bangor | | |
| 133. | 10 | Adam Maxwell | 18:29.8 | Grand River Preparatory | | |
| 134. | 11 | Ryan Cade | 18:33.3 | Coloma | | |
| 135. | 9 | Cody Ladd | 18:33.6 | Schoolcraft | | |
| 136. | 10 | Levi Cole | 18:34.1 | Bangor | | |
| 137. | 10 | Levi Prater | 18:36.0 | Leslie | | |
| 138. | 11 | Cody Gruss | 18:36.1 | Shepherd | | |
| 139. | 11 | Kurt Meister | 18:36.3 | Farwell | | |
| 140. | 11 | Chris Llamas | 18:37.1 | Hartford | | |
| 141. | 9 | eric Poth | 18:37.3 | Marlette | | |
| 142. | 10 | Elijah Martonosi | 18:37.5 | Holland Black River | | |
| 143. | 11 | Colin Bachinski | 18:38.7 | Manistee | | |
| 144. | 12 | Marcus O'Hara | 18:39.5 | Kingsley | | |
| 145. | 10 | Jake Spitsbergen | 18:40.5 | Parchment | | |
| 146. | 12 | Matt Chappel | 18:44.8 | Marlette | | |
| 147. | 12 | Russell Lipe | 18:45.3 | Bath | | |
| 148. | 11 | Dan Bloink | 18:45.5 | Flint Powers Catholic | | |
| 149. | 9 | Miguel Flores | 18:46.6 | Hartford | | |
| 150. | 12 | David McNealy | 18:46.7 | Bangor | | |
| 151. | 12 | Remy Whitehill | 18:49.5 | Jonesville | | |
| 152. | 9 | Austin Ladd | 18:49.7 | Schoolcraft | | |
| 153. | 9 | Ian Fox | 18:50.5 | Flint Powers Catholic | | |
| 154. | 9 | Austin Salome | 18:51.0 | Kalamazoo Comstock | | |
| 155. | 10 | Josh Fitch | 18:51.1 | Frankenmuth | | |
| 156. | 12 | Alex Eger | 18:51.3 | Buchanan | | |
| 157. | 12 | Daniel Munoz | 18:51.8 | Bangor | | |
| 158. | 10 | Will Libs | 18:52.5 | Ann Arbor Gabriel Richard | | |
| 159. | 12 | Ridge DeRosia | 18:53.2 | Grass Lake | | |
| 160. | 9 | Andrew Travis | 18:53.4 | Shepherd | | |
| 161. | 9 | Elliott Hanke | 18:53.8 | Bridgman | | |
| 162. | 12 | Austin Olson | 18:55.6 | Kingsley | | |
| 163. | 12 | Andrew Solberg | 18:56.8 | Manistee | | |
| 164. | 11 | Steven Rantz | 18:57.2 | Parchment | | |
| 165. | 10 | Zachary Spencley | 18:58.2 | Holland Black River | | |
| 166. | 11 | Daniel Lacroix | 18:58.3 | Ann Arbor Gabriel Richard | | |
| 167. | 11 | David Watkins | 18:59.0 | Bangor | | |
| 168. | 10 | Ryan Waggoner | 18:59.1 | Flint Powers Catholic | | |
| 169. | 9 | Freddie Burchett | 18:59.6 | Hartford | | |
| 170. | 12 | Josh LaFave | 18:59.7 | Ann Arbor Gabriel Richard | | |
| 171. | 11 | Brad Coulter | 19:00.8 | Bath | | |
| 172. | 9 | Chase Field | 19:00.9 | Clare | | |
| 173. | 9 | Elliott Lipe | 19:02.6 | Bath | | |
| 174. | 11 | Austin Fancher | 19:04.5 | Manistee | | |
| 175. | 12 | Jared Balcom | 19:07.7 | Schoolcraft | | |
| 176. | 11 | Stephen Mitchell | 19:09.0 | Ann Arbor Gabriel Richard | | |
| 177. | 11 | Hunter Kline | 19:09.8 | Constantine | | |
| 178. | 10 | Alex Costley | 19:11.1 | Ann Arbor Gabriel Richard | | |
| 179. | 10 | Dallas Miller | 19:11.8 | Newaygo | | |
| 180. | 10 | Andrew Adkins | 19:12.3 | Hanover-Horton | | |
| 181. | 10 | Grant Parkins | 19:12.8 | Berrien Springs | | |
| 182. | 12 | Cameron Collier | 19:13.3 | Berrien Springs | | |
| 183. | 10 | Steven Henley | 19:14.7 | Hopkins | | |
| 184. | 9 | Justin Threatt | 19:15.5 | Newaygo | | |
| 185. | 11 | Anthony Fonzi | 19:15.7 | Grass Lake | | |
| 186. | 9 | Shane Gutkowski | 19:16.6 | Frankenmuth | | |
| 187. | 10 | Ben Olsen | 19:18.4 | Coloma | | |
| 188. | 12 | Robert Chaney | 19:20.0 | Jackson Lumen Christi | | |
| 189. | 11 | Devin Johnson | 19:22.6 | Kalamazoo Comstock | | |
| 190. | 12 | Jacob Sible | 19:23.9 | Kent City | | |
| 191. | 11 | David Sherwood | 19:25.1 | Grass Lake | | |
| 192. | 9 | Jake Kerstetter | 19:25.2 | Grass Lake | | |
| 193. | 10 | Robby Dewey | 19:29.0 | Grand Rapids NorthPointe C... | | |
| 194. | 12 | Benjamin Rudloff | 19:29.4 | Constantine | | |
| 195. | 11 | Sean Rantz | 19:31.7 | Parchment | | |
| 196. | 12 | Matt Ryan | 19:32.1 | Hartford | | |
| 197. | 10 | Ezra Amstutz | 19:36.3 | Constantine | | |
| 198. | 11 | Andrew Palmreuter | 19:37.3 | Frankenmuth | | |
| 199. | 12 | Matt Mackey | 19:38.5 | Ann Arbor Gabriel Richard | | |
| 200. | 12 | Riley Crawford | 19:40.7 | Clare | | |
| 201. | 11 | Josh Musche | 19:42.6 | Kalamazoo Comstock | | |
| 202. | 11 | Glenn McDaniel | 19:45.3 | Farwell | | |
| 203. | 9 | Troy Davis | 19:47.1 | Leslie | | |
| 204. | 11 | Mike Mumper | 19:48.7 | Newaygo | | |
| 205. | 9 | Brad Wynalda | 19:48.7 | Grand Rapids NorthPointe C... | | |
| 206. | 12 | Andrew Chapa | 19:53.0 | Parchment | | |
| 207. | 10 | Logan Jennings | 19:53.9 | Grant | | |
| 208. | 10 | Ben Swanson | 19:54.2 | Kent City | | |
| 209. | 10 | Skyler Traver | 19:54.6 | Hartford | | |
| 210. | 10 | Benancio Rodriguez | 19:54.6 | Grant | | |
| 211. | 10 | Konrad Stein | 19:55.5 | Kingsley | | |
| 212. | 12 | Isaac Roth | 19:56.8 | Hillsdale | | |
| 213. | 12 | Zach Seddon | 20:02.7 | Bath | | |
| 214. | 11 | Sam Smit | 20:03.4 | Hopkins | | |
| 215. | 11 | Ethan Ray | 20:04.1 | Grass Lake | | |
| 216. | 10 | Andrew Hutchinson | 20:05.0 | Shepherd | | |
| 217. | 10 | Branley Mafuta | 20:05.5 | Bath | | |
| 218. | 10 | Warren Krettek | 20:10.5 | Bridgman | | |
| 219. | 10 | Garth Bogart | 20:11.3 | Kingsley | | |
| 220. | 10 | Jacob Harvey | 20:17.1 | Coloma | | |
| 221. | 10 | Alexander Bascom | 20:18.0 | Holland Black River | | |
| 222. | 9 | Karl Hanke | 20:18.5 | Bridgman | | |
| 223. | 11 | Stephen Knapper | 20:27.3 | Berrien Springs | | |
| 224. | 9 | Owen Webb | 20:28.0 | Hillsdale | | |
| 225. | 12 | William Ryan | 20:30.7 | Constantine | | |
| 226. | 9 | Blake Williams | 20:30.7 | Coloma | | |
| 227. | 9 | Austin Ebrecht | 20:32.5 | Coloma | | |
| 228. | 11 | Nick Font | 20:45.0 | Jonesville | | |
| 229. | 9 | Mike Maas | 20:45.4 | Grand Rapids NorthPointe C... | | |
| 230. | 12 | Byeong Gug Kim | 20:46.4 | Bridgman | | |
| 231. | 10 | Tyler Vander Werp | 20:48.4 | Grand River Preparatory | | |
| 232. | 10 | Brock Mueller | 20:52.3 | Delton-Kellogg | | |
| 233. | 11 | Richard Terrell | 20:54.2 | Berrien Springs | | |
| 234. | 10 | Jeremy Wilson | 20:56.0 | Frankenmuth | | |
| 235. | 10 | Dakota Miller | 21:02.0 | Hopkins | | |
| 236. | 12 | Pat Wheatley | 21:03.1 | Buchanan | | |
| 237. | 12 | Cody Mallo | 21:09.7 | Constantine | | |
| 238. | 9 | Carson Mursch | 21:13.2 | Delton-Kellogg | | |
| 239. | 10 | Christian Billman | 21:15.8 | Berrien Springs | | |
| 240. | 11 | Dylan Wright | 21:20.7 | Kalamazoo Comstock | | |
| 241. | 9 | Jake Sytsma | 21:26.7 | Hopkins | | |
| 242. | 10 | Austin Tamez | 21:31.7 | Delton-Kellogg | | |
| 243. | 10 | Cole Brandon | 21:39.5 | Parchment | | |
| 244. | 10 | Aaron Lawrence | 21:41.2 | Jonesville | | |
| 245. | 11 | Jack Binegar | 22:22.5 | Parchment | | |
| 246. | 9 | Eric Hoeberling | 22:24.4 | Delton-Kellogg | | |
| 247. | 10 | Mathew Elliot | 22:24.9 | Delton-Kellogg | | |
| 248. | 9 | Reese Sample | 22:33.0 | Coloma | | |
| 249. | 12 | Bobby Steele | 22:35.5 | Frankenmuth | | |
| 250. | 9 | Clayton Conner | 22:51.5 | Hopkins | | |
| 251. | 9 | Matt Mitchell | 22:52.4 | Buchanan | | |
| 252. | 12 | Kyle Zelmer | 22:56.0 | Buchanan | | |
| 253. | 12 | Chandler Morris | 23:10.0 | Grant | | |
| 254. | 12 | Jacob Rodriguez | 23:14.7 | Hartford | | |
| 255. | 10 | Nicholas Kridler | 23:22.6 | Kent City | | |
| 256. | 9 | Chris Russell | 24:41.7 | Kent City | | |
| 257. | 9 | Josh Verberg | 26:25.8 | Hopkins | | |
| 258. | 11 | Logan Porter | 29:28.4 | Bridgman | | |
| 1. | 10 | Jesse Hersha | 15:43.3 | Concord | | |
| 2. | 12 | Nick Vanderkooi | 15:54.0 | Fremont Providence Christian | | |
| 3. | 12 | Sean Kelly | 15:59.1 | Saugatuck | | |
| 4. | 12 | Michael Myers | 16:15.4 | Kalamazoo Hackett | | |
| 5. | 12 | Zach Kerr | 16:25.0 | Saugatuck | | |
| 6. | 12 | Jacob Chovaz | 16:26.4 | North Muskegon | | |
| 7. | 10 | Doug Hollett | 16:28.9 | Kalamazoo Christian | | |
| 8. | 9 | Josiah Ottolini | 16:30.0 | Concord | | |
| 9. | 10 | Damien Halverson | 16:30.2 | Hesperia | | |
| 10. | 12 | Kurt Gulick | 16:36.1 | Breckenridge | | |
| 11. | 12 | Parker Saenz | 16:39.3 | Concord | | |
| 12. | 12 | Ty Neu | 16:39.6 | Concord | | |
| 13. | 12 | Norman Emineth | 16:43.4 | Potterville | | |
| 14. | 11 | Caleb Ohland | 16:44.6 | Kalamazoo Home School Sports | | |
| 15. | 12 | Greg Trierweiler | 16:48.8 | Pewamo-Westphalia | | |
| 16. | 12 | Zach Hufstedler | 16:52.8 | Mendon | | |
| 17. | 11 | Tanner Droste | 16:56.4 | Pewamo-Westphalia | | |
| 18. | 10 | Marcus Garrow | 16:56.8 | Harbor Springs | | |
| 19. | 12 | Jesse Corbat | 16:59.8 | Breckenridge | | |
| 20. | 11 | Clayton Springer | 17:02.5 | Saugatuck | | |
| 21. | 12 | Nate Partee | 17:05.4 | Breckenridge | | |
| 22. | 11 | Kamren English | 17:06.8 | New Buffalo | | |
| 23. | 10 | Sam Traver | 17:07.7 | Potterville | | |
| 24. | 12 | Connor Bresnahan | 17:08.5 | Kalamazoo Hackett | | |
| 25. | 12 | Blake Thelen | 17:09.1 | Pewamo-Westphalia | | |
| 26. | 12 | Kyle Gulick | 17:10.7 | Breckenridge | | |
| 27. | 12 | Joel Pennell | 17:12.1 | Pewamo-Westphalia | | |
| 28. | 11 | Michael Campbell | 17:15.5 | Mendon | | |
| 29. | 12 | Hunter Reed | 17:16.0 | Eau Claire | | |
| 30. | 12 | Bryan Peoples | 17:19.0 | Albion | | |
| 31. | 12 | Sam Comden | 17:20.5 | Concord | | |
| 32. | 12 | Austin Carlson | 17:21.8 | Eau Claire | | |
| 33. | 11 | John Girven | 17:24.5 | Bear Lake | | |
| 34. | 10 | Jacob Pettinga | 17:26.9 | Saugatuck | | |
| 35. | 11 | Zach Hudson | 17:32.2 | Albion | | |
| 36. | 11 | Randy Schafer | 17:32.4 | Pewamo-Westphalia | | |
| 37. | 10 | Michael Gorman | 17:37.6 | Harbor Springs | | |
| 38. | 9 | Dallas Hanna | 17:38.2 | Grand Traverse Academy | | |
| 39. | 12 | Trevor Rohrer | 17:41.1 | Harbor Springs | | |
| 40. | 9 | Kevin Wunderly | 17:41.6 | Kalamazoo Christian | | |
| 41. | 11 | Alex Woerdehoff | 17:41.9 | New Buffalo | | |
| 42. | 10 | Austin Brittain | 17:42.0 | Breckenridge | | |
| 43. | 12 | Alex Kraft | 17:42.2 | Suttons Bay | | 5:30, 11:24 |
| 44. | 9 | Jordan Anderson | 17:42.3 | Bear Lake | | |
| 45. | 11 | Mitch Hoffman | 17:42.9 | West Michigan Aviation Aca... | | |
| 46. | 12 | Jeffrey Howard | 17:43.9 | Harbor Springs | | |
| 47. | 11 | Zach Darmofal | 17:44.3 | Mendon | | |
| 48. | 11 | Aaron Kostrzewa | 17:44.7 | Grand Traverse Academy | | |
| 49. | 11 | Michael Elluru | 17:47.2 | Kalamazoo Hackett | | |
| 50. | 12 | Andrew Furstenberg | 17:47.8 | Harbor Springs | | |
| 51. | 11 | Jake Partee | 17:49.0 | Breckenridge | | |
| 52. | 12 | Isaiah Nobel | 17:49.3 | Grand Rapids Track | | |
| 53. | 10 | Hunter Perrin | 17:51.4 | Kalamazoo Christian | | |
| 54. | 11 | August Schmeidiknecht | 17:51.6 | Potterville | | |
| 55. | 11 | Mark Brandly | 17:53.7 | Big Rapids Crossroads Acad... | | |
| 56. | 12 | Dillon Murray | 17:54.0 | Hillsdale Academy | | |
| 57. | 11 | John Mancini | 17:56.1 | Kalamazoo Hackett | | |
| 58. | 10 | Patrick Cecil | 17:56.7 | Lake Michigan Catholic | | |
| 59. | 12 | Collin O'Day | 17:56.8 | Heritage Christian Academy | | |
| 60. | 9 | Jeremy Bond | 17:57.8 | Charyl Stockwell Academy | | |
| 61. | 10 | Cole Menck | 17:57.9 | Lawton | | |
| 62. | 12 | Parker Eldred | 18:02.0 | Montabella | | |
| 63. | 11 | Nathan Gibes | 18:02.5 | Kalamazoo Home School Sports | | |
| 64. | 12 | Jacob Hufstedler | 18:04.0 | Centreville | | |
| 65. | 10 | Nathanial Dick | 18:05.5 | Grand Rapids Track | | |
| 66. | 12 | Sam Freestone | 18:06.6 | Saugatuck | | |
| 67. | 11 | Joe Gales | 18:06.6 | Mendon | | |
| 68. | 10 | Joey Hutchins | 18:07.2 | Concord | | |
| 69. | 10 | Caleb Barker | 18:10.6 | Pewamo-Westphalia | | |
| 70. | 11 | Travess Smith | 18:12.7 | Hesperia | | |
| 71. | 9 | Kelton Eldred | 18:13.2 | Montabella | | |
| 72. | 11 | Shane Peterson | 18:15.1 | Bear Lake | | |
| 73. | 12 | Dalen Cage | 18:21.4 | Albion | | |
| 74. | 12 | Galib Braschler | 18:22.2 | Saugatuck | | |
| 75. | 12 | Dan Simonds | 18:23.0 | Kalamazoo Hackett | | |
| 76. | 11 | Alex Barto | 18:23.5 | Bear Lake | | |
| 77. | 11 | John Michael Schoedel | 18:25.2 | Bear Lake | | |
| 78. | 11 | Christian Watson | 18:25.6 | Montabella | | |
| 79. | 10 | Joe Brown | 18:27.9 | Saugatuck | | |
| 80. | 9 | Arik LaFave | 18:29.4 | Hesperia | | |
| 81. | 11 | Nicholas Newton | 18:30.9 | St Philip Catholic Central | | |
| 82. | 12 | Tyler Floering | 18:32.3 | Grand Traverse Academy | | |
| 83. | 10 | Austin McQueer | 18:34.2 | Grand Traverse Academy | | |
| 84. | 11 | Jeremy Bos | 18:35.6 | North Muskegon | | |
| 85. | 12 | Alex Prado | 18:37.1 | Hesperia | | |
| 86. | 12 | Ryan Marquardt | 18:37.4 | Hudsonville Freedom Christ... | | |
| 87. | 10 | Sam Richardson | 18:38.9 | Breckenridge | | |
| 88. | 12 | Joe Lazzari | 18:39.2 | Centreville | | |
| 89. | 12 | Justin Hartges | 18:40.2 | Capital Homeschool | | |
| 90. | 9 | Nathan McKeown | 18:41.0 | Hesperia | | |
| 91. | 10 | Rolando Hernandez | 18:42.2 | Eau Claire | | |
| 92. | 11 | Matt Clementz | 18:43.7 | Centreville | | |
| 93. | 9 | Troy Inman | 18:44.5 | Grand Rapids Track | | |
| 94. | 9 | Ben DeMass | 18:45.0 | Capital Homeschool | | |
| 95. | 11 | Sam Inman | 18:46.6 | West Michigan Aviation Aca... | | |
| 96. | 10 | Zach Schafer | 18:47.4 | Pewamo-Westphalia | | |
| 97. | 12 | Harrison Dysart | 18:48.4 | Capital Homeschool | | |
| 98. | 9 | Chris Bell | 18:49.0 | Albion | | |
| 99. | 10 | Julian Torres | 18:49.5 | Lawton | | |
| 100. | 10 | Alec Badgley | 18:53.0 | Potterville | | |
| 101. | 11 | Jacob Davis | 18:53.8 | West Michigan Aviation Aca... | | |
| 102. | 9 | Charles Goole | 18:54.5 | Lawton | | |
| 103. | 10 | Jared Bair | 18:55.0 | Bear Lake | | |
| 104. | 12 | Andrew Karttunen | 18:55.0 | Potterville | | |
| 105. | 11 | Jake Buday | 18:55.4 | Kalamazoo Hackett | | |
| 106. | 10 | Nick Moulter | 18:57.6 | Montabella | | |
| 107. | 12 | Tim Holmberg | 18:57.6 | Creative Technologies Acad... | | |
| 108. | 10 | Riley VanPelt | 18:58.8 | New Buffalo | | |
| 109. | 11 | Daniel Baljeu | 18:59.1 | Kalamazoo Christian | | |
| 110. | 11 | David Jacobs | 18:59.9 | Hesperia | | |
| 111. | 10 | Nick Vazquez | 19:00.7 | Lawrence | | |
| 112. | 11 | Theo Amarger | 19:01.8 | North Muskegon | | |
| 113. | 12 | Alex Schmidt | 19:02.9 | Hudsonville Freedom Christ... | | |
| 114. | 9 | Tucker Ward | 19:03.6 | Concord | | |
| 115. | 11 | Geoffrey Mallet | 19:04.3 | Kalamazoo Christian | | |
| 116. | 11 | Jacob Nethercott | 19:04.4 | Harbor Springs | | |
| 117. | 12 | Kyle Davis | 19:04.5 | Centreville | | |
| 118. | 11 | Jonathan Alvaro | 19:04.6 | Capital Homeschool | | |
| 119. | 9 | Adam Curtis | 19:05.0 | Big Rapids Crossroads Acad... | | |
| 120. | 12 | Joshiah Heikoop | 19:05.3 | Grand Rapids Track | | |
| 121. | 10 | Gabe Nymeyer | 19:06.3 | Hudsonville Freedom Christ... | | |
| 122. | 9 | Cole Verrett | 19:07.3 | Bear Lake | | |
| 123. | 12 | Cunningham Gary | 19:08.3 | Centreville | | |
| 124. | 10 | Sam Wynsma | 19:08.5 | Suttons Bay | | 5:58, 12:18 |
| 125. | 9 | Paul Rozeboom | 19:08.8 | Grand Rapids Track | | |
| 126. | 9 | Kurtis Alessi | 19:13.2 | Harbor Springs | | |
| 127. | 12 | Joel Stehouwer | 19:21.8 | Kalamazoo Christian | | |
| 128. | 11 | Matt Miller | 19:22.6 | Potterville | | |
| 129. | 12 | Austin Armstrong | 19:24.6 | Creative Technologies Acad... | | |
| 130. | 9 | Jontaj Wallace | 19:30.6 | Albion | | |
| 131. | 12 | Matt Skinner | 19:34.5 | Albion | | |
| 132. | 10 | Chase Pitcher | 19:35.5 | Charyl Stockwell Academy | | |
| 133. | 12 | Austin Garner | 19:36.5 | Montabella | | |
| 134. | 10 | Trent Matheny | 19:36.5 | Lawrence | | |
| 135. | 11 | Travis Webster | 19:37.1 | North Muskegon | | |
| 136. | 9 | Nathan Meekhof | 19:37.4 | Hudsonville Freedom Christ... | | |
| 137. | 10 | Patrick Butler | 19:37.9 | New Buffalo | | |
| 138. | 11 | Tim Fraser | 19:40.5 | Grand Traverse Academy | | |
| 139. | 10 | William Lantinga | 19:40.9 | St Philip Catholic Central | | |
| 140. | 11 | Cole Szesulski | 19:44.1 | Marcellus | | |
| 141. | 10 | Michael Eichberg | 19:45.9 | Eau Claire | | |
| 142. | 9 | Austin Yunker | 19:46.1 | Mendon | | |
| 143. | 11 | RJ Stone | 19:48.3 | Albion | | |
| 144. | 12 | John Golob | 19:50.0 | Lake Michigan Catholic | | |
| 145. | 11 | Elijah Schwartz | 19:50.6 | Centreville | | |
| 146. | 11 | Michael Riess | 19:53.7 | Centreville | | |
| 147. | 10 | Travis Klitchman | 19:55.8 | Eau Claire | | |
| 148. | 12 | Taylor Page | 19:56.2 | Grand Traverse Academy | | |
| 149. | 11 | Lars Truesdall | 19:57.0 | Grand Traverse Academy | | |
| 150. | 10 | Anthony Martino | 19:58.9 | Charyl Stockwell Academy | | |
| 151. | 11 | Dakoda Lobert | 19:59.4 | Montabella | | |
| 152. | 9 | Andres Campos | 19:59.7 | St Philip Catholic Central | | |
| 153. | 10 | Tyler Frisbie | 20:00.7 | Mendon | | |
| 154. | 11 | Brian Erhart | 20:02.3 | West Michigan Aviation Aca... | | |
| 155. | 9 | Eric Schipper | 20:05.9 | West Michigan Aviation Aca... | | |
| 156. | 11 | Spencer Day | 20:06.2 | Marcellus | | |
| 157. | 10 | Jonathan Dysart | 20:09.2 | Capital Homeschool | | |
| 158. | 12 | Lefor Joey | 20:13.9 | Lawrence | | |
| 159. | 10 | Collin Widger | 20:17.6 | Kalamazoo Hackett | | |
| 160. | 9 | Tim Brandt | 20:17.8 | Fremont Providence Christian | | |
| 161. | 11 | Elliott Shoemaker | 20:19.3 | Capital Homeschool | | |
| 162. | 11 | Justin Richardson | 20:22.8 | Kalamazoo Christian | | |
| 163. | 12 | Jacob Ronowski | 20:23.9 | Potterville | | |
| 164. | 10 | Mason Haas | 20:27.2 | Marcellus | | |
| 165. | 10 | Nathan Swartz | 20:28.6 | Marcellus | | |
| 166. | 10 | Chance Vroman | 20:29.5 | Mendon | | |
| 167. | 9 | Nathan Morgan | 20:30.5 | Charyl Stockwell Academy | | |
| 168. | 10 | Joel Macyauski | 20:36.8 | Lawrence | | |
| 169. | 12 | Matt Hanley | 20:38.7 | North Muskegon | | |
| 170. | 10 | Ethan Fuller | 20:39.9 | Big Rapids Crossroads Acad... | | |
| 171. | 9 | Larry Glista | 20:50.7 | Lawrence | | |
| 172. | 11 | Gregory Woolen | 20:50.7 | Big Rapids Crossroads Acad... | | |
| 173. | 12 | Dillon Cook | 20:52.1 | Hesperia | | |
| 174. | 12 | Dylan Sonnevil | 20:54.7 | Marcellus | | |
| 175. | 12 | Sam Sohlden | 20:56.4 | Kalamazoo Home School Sports | | |
| 176. | 10 | Kristopher Herbert | 20:58.7 | North Muskegon | | |
| 177. | 10 | John Martin Brockway | 21:00.0 | Kalamazoo Home School Sports | | |
| 178. | 9 | Cale Gray | 21:01.3 | Charyl Stockwell Academy | | |
| 179. | 12 | Graham Kelly | 21:01.3 | Suttons Bay | | 6:43, 13:48 |
| 180. | 12 | Adam Shultz | 21:01.7 | Kalamazoo Home School Sports | | |
| 181. | 12 | Vince Modert | 21:03.2 | Hudsonville Freedom Christ... | | |
| 182. | 10 | Christopher Eichberg | 21:04.2 | Eau Claire | | |
| 183. | 11 | Benjamin Siebert | 21:04.9 | Charyl Stockwell Academy | | |
| 184. | 10 | Clayton Latham | 21:08.9 | West Michigan Aviation Aca... | | |
| 185. | 12 | Dylan Ozanich | 21:10.0 | Lawton | | |
| 186. | 10 | Deloach David | 21:10.6 | Lawrence | | |
| 187. | 9 | Jesse Schultz | 21:12.9 | Creative Technologies Acad... | | |
| 188. | 11 | Blake Born | 21:14.6 | Heritage Christian Academy | | |
| 189. | 9 | Ben Carpenter | 21:24.9 | Marcellus | | |
| 190. | 12 | Ethan Rutherford | 21:36.6 | St Philip Catholic Central | | |
| 191. | 11 | Eli Albring | 21:42.4 | Montabella | | |
| 192. | 11 | Tim Warford | 21:52.7 | Kalamazoo Home School Sports | | |
| 193. | 12 | Forrest McKenzie | 21:53.0 | Marcellus | | |
| 194. | 9 | Cody Baugh | 21:55.8 | Lawton | | |
| 195. | 9 | Tyler Berg | 21:56.6 | Lawton | | |
| 196. | 10 | Hunter George | 22:01.9 | Creative Technologies Acad... | | |
| 197. | 11 | Damian Brown | 22:04.9 | New Buffalo | | |
| 198. | 11 | Isaiah Huckstead | 22:05.2 | Grand Rapids Track | | |
| 199. | 11 | Daniel Yates | 22:43.1 | St Philip Catholic Central | | |
| 200. | 9 | Nate Brunner | 22:47.3 | Lake Michigan Catholic | | |
| 201. | 11 | Blake McKenzie | 22:50.8 | Big Rapids Crossroads Acad... | | |
| 202. | 9 | Aidan Snell | 22:59.5 | Charyl Stockwell Academy | | |
| 203. | 10 | Teddy McNeir | 23:02.3 | St Philip Catholic Central | | |
| 204. | 11 | Jordan Hatfield | 23:10.0 | Lake Michigan Catholic | | |
| 205. | 12 | Josh Clapp | 24:32.2 | Fremont Providence Christian | | |
| 206. | 9 | Brendan Miller | 24:41.9 | Hillsdale Academy | | |
| 207. | 9 | William Voit | 24:46.4 | Eau Claire | | |
| 208. | 9 | Caleb Eckl | 25:03.2 | Grand Rapids Track | | |
| 209. | 11 | Jacob Meekhof | 25:50.2 | Hudsonville Freedom Christ... | | |
| 210. | 10 | George Squillace | 25:51.0 | Capital Homeschool | | |
| 211. | 10 | Tanner Smith | 25:52.0 | Suttons Bay | | 8:12, 17:04 |
| 212. | 9 | Jack Wojcik | 26:07.9 | St Philip Catholic Central | | |
| 1. | 12 | Neil Bultman | 17:34.9 | Grandville Calvin Christian | | |
| 2. | 12 | Nathan Piersma | 17:46.8 | Grandville Calvin Christian | | |
| 3. | 10 | Taylor Terborg | 17:49.6 | Grandville Calvin Christian | | |
| 4. | 9 | Elija Huckstead | 17:54.1 | Grand Rapids Track | | |
| 5. | 10 | Logan Jurgens | 18:04.2 | Grandville Calvin Christian | | |
| 6. | 10 | Zane Brooks | 18:10.8 | Benzie Central | | |
| 7. | 11 | Mitchell DeBruin | 18:14.8 | Grandville Calvin Christian | | |
| 8. | 11 | Andrew White | 18:26.8 | Napoleon | | |
| 9. | 9 | Reese Jones | 18:29.9 | Watervliet | | |
| 10. | 9 | Hunter VanKlompenberg | 18:30.2 | Grandville Calvin Christian | | |
| 11. | 12 | Josh VanWyhe | 18:36.6 | Grandville Calvin Christian | | |
| 12. | 9 | Chase Amley | 18:38.4 | Grass Lake | | |
| 13. | 9 | Aaron Heath | 18:43.5 | Hanover-Horton | | |
| 14. | 12 | A. J. Gagliardo | 18:43.9 | Watervliet | | |
| 15. | 11 | Zach Rozeboom | 18:50.3 | Grandville Calvin Christian | | |
| 16. | 9 | Michael Belinsky | 18:50.4 | Bear Lake | | |
| 17. | 11 | Kelly Gilbert | 18:53.4 | Shepherd | | |
| 18. | 11 | Hayden Harneck | 18:55.9 | Marlette | | |
| 19. | 11 | Ben Kroeze | 18:56.0 | Grandville Calvin Christian | | |
| 20. | 9 | Nick Snider | 19:00.9 | Stockbridge | | |
| 21. | 10 | Austin Keiser | 19:01.1 | Hanover-Horton | | |
| 22. | 11 | Kim O'Connell | 19:01.2 | Hanover-Horton | | |
| 23. | 12 | Alex Lindeman | 19:01.4 | Manistee | | |
| 24. | 9 | Casey Klimkiewicz | 19:02.0 | Watervliet | | |
| 25. | 12 | Brenden Dolehanty | 19:05.2 | Shepherd | | |
| 26. | 10 | Dakota Yeaster | 19:07.4 | Hanover-Horton | | |
| 27. | 10 | Kristopher Cavender | 19:08.0 | Jackson Lumen Christi | | |
| 28. | 10 | Sean Corcoran | 19:08.2 | Flint Powers Catholic | | |
| 29. | 11 | Eric Johnson | 19:08.2 | Flint Powers Catholic | | |
| 30. | 10 | Allan Dowling | 19:12.2 | Hanover-Horton | | |
| 31. | 9 | Kyle Smith | 19:13.3 | Benzie Central | | |
| 32. | 12 | Jere Maki | 19:13.6 | Leslie | | |
| 33. | 12 | Caleb Foura | 19:14.1 | Constantine | | |
| 34. | 12 | Preston Terrell | 19:15.0 | Flint Powers Catholic | | |
| 35. | 12 | Michael Cannon | 19:15.3 | Harbor Springs | | |
| 36. | 11 | Jeremy Sherwood | 19:15.5 | Grass Lake | | |
| 37. | 10 | Tim Doetsch | 19:16.3 | Napoleon | | |
| 38. | 12 | Brandon Palmateer | 19:16.8 | Pewamo-Westphalia | | |
| 39. | 9 | Gabe Lamer | 19:18.8 | Grandville Calvin Christian | | |
| 40. | 9 | Keegan Daniel | 19:21.1 | Flint Powers Catholic | | |
| 41. | 11 | Payton Dunning | 19:21.4 | Hanover-Horton | | |
| 42. | 10 | Hunter Rosema | 19:22.1 | Hesperia | | |
| 43. | 11 | Trevor Norkey | 19:22.7 | Jackson Lumen Christi | | |
| 44. | 10 | Benny Loshbough | 19:23.4 | Watervliet | | |
| 45. | 11 | Sam DeKryger | 19:24.7 | Grandville Calvin Christian | | |
| 46. | 9 | Nolan Garrett | 19:27.5 | Grass Lake | | |
| 47. | 11 | Tyler Spitzley | 19:28.2 | Pewamo-Westphalia | | |
| 48. | 10 | Shane Harrison | 19:28.6 | Leslie | | |
| 49. | 11 | Craig Campbell | 19:28.9 | Flint Powers Catholic | | |
| 50. | 12 | Dane Egner | 19:29.5 | Flint Powers Catholic | | |
| 51. | 11 | Seth Groenveld | 19:29.7 | Grandville Calvin Christian | | |
| 52. | 10 | Eric Eisenberger | 19:30.3 | Shepherd | | |
| 53. | 12 | Casey Johnson | 19:33.0 | Marlette | | |
| 54. | 10 | Kevin Gould | 19:34.1 | Flint Powers Catholic | | |
| 55. | 11 | Mike Sinanian | 19:34.4 | Flint Powers Catholic | | |
| 56. | 11 | Chase Siersema | 19:35.8 | Hesperia | | |
| 57. | 10 | Spencer Silveus | 19:36.6 | Hanover-Horton | | |
| 58. | 9 | Brian Ellis | 19:37.6 | Holland Black River | | |
| 59. | 9 | Mitchell Shetenhelm | 19:38.1 | Shepherd | | |
| 60. | 9 | Gavin Marr | 19:40.1 | Breckenridge | | |
| 61. | 12 | Alex Filiputti | 19:40.4 | Kalamazoo Hackett | | |
| 62. | 10 | Andy Hill-Caruthers | 19:40.8 | Ann Arbor Gabriel Richard | | |
| 63. | 11 | Nic Cooper | 19:41.5 | Stockbridge | | |
| 64. | 10 | Josh Carpenter | 19:41.5 | Kalamazoo Hackett | | |
| 65. | 9 | Alex Bennett | 19:41.7 | Napoleon | | |
| 66. | 10 | Graham Broek | 19:43.1 | Grandville Calvin Christian | | |
| 67. | 10 | Benjamin Lenning | 19:43.2 | Schoolcraft | | |
| 68. | 12 | Ian McVey | 19:45.3 | Jackson Lumen Christi | | |
| 69. | 12 | Austin Ford | 19:46.2 | Bangor | | |
| 70. | 9 | Ty McCrum | 19:47.0 | Napoleon | | |
| 71. | 10 | Matthew Fought | 19:48.0 | Harbor Springs | | |
| 72. | 9 | Jesus Amado | 19:48.5 | Ann Arbor Gabriel Richard | | |
| 73. | 10 | Anthony Olexa | 19:48.9 | Breckenridge | | |
| 74. | 9 | Jacob Evans | 19:49.6 | Schoolcraft | | |
| 75. | 11 | Mason Nousain | 19:49.9 | Concord | | |
| 76. | 12 | Joshua Kelly | 19:50.1 | Bangor | | |
| 77. | 11 | John Veldkamp | 19:51.4 | Grandville Calvin Christian | | |
| 78. | 9 | Vlad Robinson | 19:51.5 | Harbor Springs | | |
| 79. | 11 | Alex Herman | 19:52.6 | Marlette | | |
| 80. | 12 | Daniel Groat | 19:53.8 | Marlette | | |
| 81. | 9 | Randy Pienta | 19:54.1 | Bear Lake | | |
| 82. | 12 | Connor Szostak | 19:54.6 | Flint Powers Catholic | | |
| 83. | 12 | Thomas Dykstra | 19:55.9 | Kalamazoo Christian | | |
| 84. | 12 | Caleb Cole | 19:56.4 | Bangor | | |
| 85. | 9 | Nadji Butris | 19:56.8 | Jackson Lumen Christi | | |
| 86. | 9 | Ethan Tippett | 19:58.4 | Harbor Springs | | |
| 87. | 12 | Ryan Warriner | 19:58.7 | Jackson Lumen Christi | | |
| 88. | 12 | Jake Adams | 19:58.8 | Watervliet | | |
| 89. | 9 | Nick Wertheimer | 19:59.3 | Clare | | |
| 90. | 11 | Andrew Wright | 20:01.8 | Potterville | | |
| 91. | 9 | Justin Stanley | 20:04.0 | Leslie | | |
| 92. | 9 | Justin Braeford | 20:05.4 | Schoolcraft | | |
| 93. | 12 | Eddie Gruss | 20:06.7 | Shepherd | | |
| 94. | 10 | Luke Gilliland | 20:11.6 | Leslie | | |
| 95. | 9 | Jacob Stefanski | 20:17.0 | Manistee | | |
| 96. | 10 | Zach Owen | 20:22.9 | Leslie | | |
| 97. | 9 | Joseph Shelcusky | 20:24.9 | Ann Arbor Gabriel Richard | | |
| 98. | 10 | Tyler Swanson | 20:25.9 | Holland Black River | | |
| 99. | 12 | Scott Haney | 20:26.8 | Flint Powers Catholic | | |
| 100. | 9 | Davis DeVoe | 20:27.2 | Schoolcraft | | |
| 101. | 9 | Marshall Lipe | 20:29.4 | Bath | | |
| 102. | 11 | Taylor Heckaman | 20:30.5 | Grass Lake | | |
| 103. | 12 | Nathaniel Tippett | 20:31.7 | Harbor Springs | | |
| 104. | 11 | Gage Lammers | 20:31.8 | Grass Lake | | |
| 105. | 12 | Chase Schaeffer | 20:35.6 | Flint Powers Catholic | | |
| 106. | 9 | Isaac Nausadis | 20:36.9 | Newaygo | | |
| 107. | 10 | Evan Meade | 20:37.0 | Stockbridge | | |
| 108. | 9 | Kurt Deutschmann | 20:38.7 | Ann Arbor Gabriel Richard | | |
| 109. | 10 | Zach Forsleff | 20:40.0 | Flint Powers Catholic | | |
| 110. | 9 | Jeffrey Bos | 20:40.5 | North Muskegon | | |
| 111. | 12 | Joey Mannino | 20:41.7 | Watervliet | | |
| 112. | 9 | Riley Waterman | 20:41.9 | Schoolcraft | | |
| 113. | 11 | Collin Tran | 20:42.9 | Kalamazoo Hackett | | |
| 114. | 9 | Cartier Cook | 20:43.4 | Grass Lake | | |
| 115. | 9 | Ryan Timm | 20:43.5 | Napoleon | | |
| 116. | 10 | Samuel Brouwer | 20:44.8 | Kalamazoo Christian | | |
| 117. | 10 | Rohan Dandavati | 20:46.1 | Holland Black River | | |
| 118. | 11 | Michael Zeiler | 20:46.8 | Hanover-Horton | | |
| 119. | 9 | Cameron Vinton | 20:47.3 | Hanover-Horton | | |
| 120. | 11 | Zack Yates | 20:47.3 | Hesperia | | |
| 121. | 9 | David Mikovits | 20:47.7 | Concord | | |
| 122. | 10 | Chad Sponseller | 20:48.4 | Shepherd | | |
| 123. | 12 | Troy Burtchett | 20:48.6 | Watervliet | | |
| 124. | 10 | Brendan Hunt | 20:49.6 | Napoleon | | |
| 125. | 9 | Jim Coffman | 20:54.3 | Bath | | |
| 126. | 9 | Walker Utley | 20:59.4 | Stockbridge | | |
| 127. | 9 | Jake Gulliver | 20:59.6 | Kingsley | | |
| 128. | 9 | Chris Groesbeck | 20:59.8 | Napoleon | | |
| 129. | 11 | Andrew Poolman | 21:01.9 | Saugatuck | | |
| 130. | 11 | Seth Harrington | 21:02.5 | Bear Lake | | |
| 131. | 10 | Nick Bellar | 21:04.5 | Potterville | | |
| 132. | 10 | Mike Wertheimer | 21:05.7 | Clare | | |
| 133. | 10 | Terrion Patterson | 21:08.9 | Albion | | |
| 134. | 11 | Nick Chames | 21:09.5 | Jackson Lumen Christi | | |
| 135. | 10 | Vincent Frankowski | 21:10.3 | Centreville | | |
| 136. | 9 | Nolan Troyer | 21:10.6 | Centreville | | |
| 137. | 12 | Nicolas Brisita | 21:10.9 | Holland Black River | | |
| 138. | 11 | Kellen Goggins | 21:11.5 | Flint Powers Catholic | | |
| 139. | 9 | Zach Snyder | 21:13.6 | Stockbridge | | |
| 140. | 10 | Lucas McFarlane | 21:14.8 | Schoolcraft | | |
| 141. | 10 | Zeke Tomblin | 21:16.4 | Napoleon | | |
| 142. | 11 | Billy Clark | 21:19.3 | Shepherd | | |
| 143. | 11 | Ben Sexton | 21:20.3 | Jackson Lumen Christi | | |
| 144. | 12 | Thomas Kerber | 21:24.0 | Bangor | | |
| 145. | 12 | Parker Sternberger | 21:24.0 | Bear Lake | | |
| 146. | 9 | Connor Durow | 21:24.5 | North Muskegon | | |
| 147. | 9 | John Slough | 21:24.9 | Jackson Lumen Christi | | |
| 148. | 9 | Jonathon Wright | 21:26.1 | Breckenridge | | |
| 149. | 12 | Chris Chupp | 21:26.9 | Centreville | | |
| 150. | 9 | Jimmy Stratton | 21:29.5 | Flint Powers Catholic | | |
| 151. | 12 | Jacob Smith | 21:31.5 | Napoleon | | |
| 152. | 10 | Matt Munie | 21:31.7 | Jackson Lumen Christi | | |
| 153. | 9 | Austin Bennett | 21:33.2 | Benzie Central | | |
| 154. | 9 | Patrick VanCamp | 21:35.6 | Flint Powers Catholic | | |
| 155. | 11 | John Rice | 21:40.1 | Mendon | | |
| 156. | 10 | Jeremy Spink | 21:44.6 | Stockbridge | | |
| 157. | 11 | Lucas Farmer | 21:45.2 | Mendon | | |
| 158. | 9 | Connor Dean | 21:46.2 | Napoleon | | |
| 159. | 11 | Dillon Mrdeza | 21:46.5 | Flint Powers Catholic | | |
| 160. | 11 | Eric Weeda | 21:47.6 | Grandville Calvin Christian | | |
| 161. | 9 | Matt Steger | 21:49.4 | Schoolcraft | | |
| 162. | 11 | Daniel Nowinski | 21:49.7 | Jackson Lumen Christi | | |
| 163. | 12 | PJ Messiter | 21:50.1 | Ann Arbor Gabriel Richard | | |
| 164. | 9 | Kobie Lantis | 21:51.5 | Napoleon | | |
| 165. | 9 | Nicholas Mazerus | 21:52.6 | Kalamazoo Hackett | | |
| 166. | 10 | Damirius Ridley | 21:53.7 | Albion | | |
| 167. | 10 | Anthony Doerr | 21:54.4 | Napoleon | | |
| 168. | 9 | Grant Schuen | 21:54.8 | Leslie | | |
| 169. | 10 | Jack Klovski | 21:55.2 | Ann Arbor Gabriel Richard | | |
| 170. | 10 | Joseph Brouwer | 21:59.2 | Kalamazoo Christian | | |
| 171. | 11 | Damion Williams | 22:00.4 | Constantine | | |
| 172. | 10 | Peter Kooshian | 22:06.0 | Grand River Preparatory | | |
| 173. | 10 | Elijah Ong | 22:10.1 | Napoleon | | |
| 174. | 11 | Zachary Drake | 22:16.8 | Centreville | | |
| 175. | 9 | Noah Troyer | 22:17.4 | Schoolcraft | | |
| 176. | 9 | Quintin Lee | 22:20.4 | Leslie | | |
| 177. | 11 | Tyler Kruger | 22:21.1 | Constantine | | |
| 178. | 10 | Andrew Clark | 22:22.1 | Marlette | | |
| 179. | 10 | Jacob Dewitt | 22:23.8 | Constantine | | |
| 180. | 10 | Travis Hillier | 22:29.6 | Benzie Central | | |
| 181. | 9 | Zach Cline | 22:32.1 | Benzie Central | | |
| 182. | 11 | Brendon Cozier | 22:37.5 | West Michigan Aviation Aca... | | |
| 183. | 10 | Hunter Miracle | 22:38.6 | Centreville | | |
| 184. | 9 | Elijah Huebner | 22:39.3 | Stockbridge | | |
| 185. | 10 | Devin Tolin | 22:39.6 | Bear Lake | | |
| 186. | 9 | Mathieu Brenner | 22:41.5 | Ann Arbor Gabriel Richard | | |
| 187. | 11 | Max Gale | 22:42.0 | West Michigan Aviation Aca... | | |
| 188. | 9 | Derek Schipper | 22:43.3 | West Michigan Aviation Aca... | | |
| 189. | 10 | Austin Macomber | 22:52.1 | Grass Lake | | |
| 190. | 12 | Trenton Reynolds | 22:55.5 | Centreville | | |
| 191. | 9 | Marcus Traver | 23:00.0 | Potterville | | |
| 192. | 9 | Robert Pressprich | 23:02.8 | Ann Arbor Gabriel Richard | | |
| 193. | 9 | Cordell Sweezy | 23:02.9 | Leslie | | |
| 194. | 9 | Connor Mathis | 23:04.1 | Newaygo | | |
| 195. | 9 | Zach Pourro | 23:05.7 | Centreville | | |
| 196. | 10 | Jakob Roberts | 23:08.6 | Concord | | |
| 197. | 10 | Grant Krum | 23:15.6 | Schoolcraft | | |
| 198. | 11 | Zach Wagner | 23:16.6 | West Michigan Aviation Aca... | | |
| 199. | 9 | Sam Haveman | 23:22.0 | West Michigan Aviation Aca... | | |
| 200. | 10 | Travis Dewitt | 23:24.8 | Constantine | | |
| 201. | 9 | Christian Miller | 23:35.6 | Constantine | | |
| 202. | 9 | Aaron Jacobs | 23:37.0 | Hesperia | | |
| 203. | 10 | Eduardo Mattos | 23:39.0 | Manistee | | |
| 204. | 11 | Connor Fellows | 23:46.6 | Napoleon | | |
| 205. | 9 | Evan Milligan | 23:51.7 | Holland Black River | | |
| 206. | 12 | Thomas Brunt | 23:54.3 | Grass Lake | | |
| 207. | 9 | Tim Humphreys | 23:57.2 | Flint Powers Catholic | | |
| 208. | 9 | Nathan Wood | 23:57.6 | Shepherd | | |
| 209. | 11 | Kang Yu | 24:01.5 | North Muskegon | | |
| 210. | 11 | Ryan Mathews | 24:05.2 | Jackson Lumen Christi | | |
| 211. | 9 | Joshua Burns | 24:05.8 | Kalamazoo Home School Sports | | |
| 212. | 11 | Randy Huddleston | 24:11.5 | Constantine | | |
| 213. | 10 | David Elliot | 24:18.8 | Delton-Kellogg | | |
| 214. | 10 | Jared Boonstra | 24:26.4 | West Michigan Aviation Aca... | | |
| 215. | 12 | Luke Herdman | 24:28.9 | Charyl Stockwell Academy | | |
| 216. | 9 | Troy Meekhof | 24:31.0 | Grandville Calvin Christian | | |
| 217. | 12 | Dylan Schaner | 24:32.8 | Hartford | | |
| 218. | 11 | Kyle Grant | 24:36.7 | Charyl Stockwell Academy | | |
| 219. | 10 | Matt Szczerba | 24:38.8 | Flint Powers Catholic | | |
| 220. | 9 | Tucker Scoville | 24:58.2 | Delton-Kellogg | | |
| 221. | 12 | Mason Sturm | 25:02.9 | North Muskegon | | |
| 222. | 9 | Daniel Humphries | 25:16.2 | Grass Lake | | |
| 223. | 11 | Chris Myers | 25:44.5 | Jackson Lumen Christi | | |
| 224. | 9 | Ajilan Potter | 25:46.5 | Grand River Preparatory | | |
| 225. | 11 | Jon Barroso | 25:54.7 | Ann Arbor Gabriel Richard | | |
| 226. | 9 | Ethan Monte | 26:01.3 | Charyl Stockwell Academy | | |
| 227. | 10 | Pat Canter | 26:18.9 | Flint Powers Catholic | | |
| 228. | 9 | Alek Humphries | 26:27.3 | Grass Lake | | |
| 229. | 10 | Jonathan Elliot | 26:42.6 | Delton-Kellogg | | |
| 230. | 10 | Tyler Herndon | 26:52.9 | West Michigan Aviation Aca... | | |
| 231. | 11 | Calvin Cook | 27:05.6 | West Michigan Aviation Aca... | | |
| 232. | 10 | Stephen Waters | 27:20.3 | Grand River Preparatory | | |
| 233. | 9 | Dillon Begley | 27:37.8 | Constantine | | |
| 234. | 9 | Ethan Holland | 28:14.0 | Frankenmuth | | |
| 235. | 12 | Chris Carpenter | 29:04.1 | Centreville | | |
| 236. | 9 | Devin Hook | 29:44.6 | Delton-Kellogg | | |