diff --git a/src/apps/viewer/extensions/cellpack/model.ts b/src/apps/viewer/extensions/cellpack/model.ts
index 4383c786faf2ed9ad9dc8e877454527643f9386d..18e80099cfbfb31ce5cf8855ac0ae14b5047bd71 100644
--- a/src/apps/viewer/extensions/cellpack/model.ts
+++ b/src/apps/viewer/extensions/cellpack/model.ts
@@ -201,7 +201,8 @@ export const LoadCellPackModel = StateAction.build({
                                     name: 'generate',
                                     params: {
                                         hue, chroma: [30, 80], luminance: [15, 85],
-                                        clusteringStepCount: 50, minSampleCount: 800
+                                        clusteringStepCount: 50, minSampleCount: 800,
+                                        maxCount: 75
                                     }
                                 }
                             }
diff --git a/src/mol-theme/color/util.ts b/src/mol-theme/color/util.ts
index f250571ed1605ec6b771e24f63464d4427140572..45d5752ff1caa9de21fb051d3e161f453a1016c6 100644
--- a/src/mol-theme/color/util.ts
+++ b/src/mol-theme/color/util.ts
@@ -22,7 +22,10 @@ export function getPaletteParams(props: Partial<GetPaletteProps> = {}) {
             scale: PD.Group({
                 list: PD.ColorScale<ColorListName>(p.scaleList, ColorListOptions),
             }, { isFlat: true }),
-            generate: PD.Group(DistinctColorsParams, { isFlat: true })
+            generate: PD.Group({
+                ...DistinctColorsParams,
+                maxCount: PD.Numeric(75, { min: 1, max: 250, step: 1 })
+            }, { isFlat: true })
         }, {
             options: [
                 ['scale', 'From Scale'],
@@ -51,8 +54,9 @@ export function getPalette(count: number, props: PaletteProps) {
         legend = scale.legend
         color = scale.color
     } else {
+        count = Math.min(count, props.palette.params.maxCount)
         const colors = distinctColors(count, props.palette.params)
-        color = (i: number) => colors[i]
+        color = (i: number) => colors[i % count]
     }
 
     return { color, legend }