```typescript
const LADDER: [string, number][] = [["m", 1000], ["cm", 10], ["mm", 1]];

export function splitLength(mm: number): string {
  if (!Number.isInteger(mm) || mm < 0) {
    throw new Error("Invalid length: must be a whole non-negative integer.");
  }

  const parts: [string, number][] = LADDER.map(([unit, divisor]) => [
    `${Math.floor(mm / divisor)}${unit}`,
    mm % divisor,
  ]);

  return parts.filter(([_, count]) => count > 0).join(" ");
}
```