diff --git a/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl b/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl
index e73e396b8e3119ca8e7ee6829a2594e8e513493b..e1b18935e80e7ef0dc7630334aa70a71bb511d37 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl
@@ -134,7 +134,7 @@ void preProbeSample(vec3 pos)
             int neighborIdx = refIndex[i].y;
             if (neighborIdx != -1)
             {
-                int neighborCount = min(refIndex[i].z, REF_SAMPLE_COUNT-1);
+                int neighborCount = refIndex[i].z;
 
                 int count = 0;
                 while (count < neighborCount)
diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp
index 144f79ae13eaeba6f6f9da4cdc62393719867a5d..a9da887220348754e1c5b2c04e57c2ec5ea000bc 100644
--- a/indra/newview/lldrawpoolwlsky.cpp
+++ b/indra/newview/lldrawpoolwlsky.cpp
@@ -441,7 +441,11 @@ void LLDrawPoolWLSky::renderDeferred(S32 pass)
         {
             renderStarsDeferred(origin);
         }
-        renderSkyCloudsDeferred(origin, camHeightLocal, cloud_shader);
+
+        if (!gCubeSnapshot || gPipeline.mReflectionMapManager.isRadiancePass()) // don't draw clouds in irradiance maps to avoid popping
+        {
+            renderSkyCloudsDeferred(origin, camHeightLocal, cloud_shader);
+        }
     }
     gGL.setColorMask(true, true);
 }
diff --git a/indra/newview/llreflectionmap.cpp b/indra/newview/llreflectionmap.cpp
index 0606e31ac390998ff21ccbda3393328a714f1c28..e71d06fb8761c67a628597241be645d545c0db39 100644
--- a/indra/newview/llreflectionmap.cpp
+++ b/indra/newview/llreflectionmap.cpp
@@ -70,7 +70,7 @@ void LLReflectionMap::autoAdjustOrigin()
 {
     LL_PROFILE_ZONE_SCOPED_CATEGORY_DISPLAY;
 
-    if (mGroup)
+    if (mGroup && !mComplete)
     {
         const LLVector4a* bounds = mGroup->getBounds();
         auto* node = mGroup->getOctreeNode();
diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp
index 9e947774b19a41dc8cd777d9a42101385dd53950..68c35ebbb564699ad1d3b7359107c567c5dd6207 100644
--- a/indra/newview/llreflectionmapmanager.cpp
+++ b/indra/newview/llreflectionmapmanager.cpp
@@ -860,6 +860,9 @@ void LLReflectionMapManager::updateUniforms()
         {
             //LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("rmmsu - refNeighbors");
             //pack neghbor list
+            const U32 max_neighbors = 64;
+            U32 neighbor_count = 0;
+
             for (auto& neighbor : refmap->mNeighbors)
             {
                 if (ni >= 4096)
@@ -875,6 +878,12 @@ void LLReflectionMapManager::updateUniforms()
 
                 // this neighbor may be sampled
                 rpd.refNeighbor[ni++] = idx;
+
+                neighbor_count++;
+                if (neighbor_count >= max_neighbors)
+                {
+                    break;
+                }
             }
         }