     e = destruction + 0.5 - length(r);
     if(0<e)q+=vec3((dot(Q(P*.009),normalize(r))*.1)+.1,-.05,-.05)*smoothstep(.0,.5,e);
   }
+
   vec3 s=mix(vec3(.9,.8,.8),vec3(.8,.8,.9),d.y*111.*.02)*(dot(Q(p*.006+d*.1),d)*smoothstep(-.2,.5,-d.y)*.2+.8);
-  if(w)
+
+  if(world_toggle)
   {
     n = smoothstep(0.0, 0.4, n);
   }
+
   output_color = vec4(mix(mix(s, vec3(1), pow(max(dot(d, light_direction), 0.0), 7.0)), q, n), 1.0) - (int(gl_FragCoord.y * 0.5) % 2 + 0.1) * (max(max(smoothstep(0.98, 1.0, uniform_array[7].y), smoothstep(-0.02 * uniform_array[9].x, 0.0, -uniform_array[7].y) * uniform_array[9].x), 0.1) + destruction * 0.02) * dot(c, c);
-  r=p;
+
+  r = p;
   e = C(r, d, uniform_array[8], destruction + 0.2);
+
   if(0.0 < e)
   {
     output_color.xyz -= clamp(1.0 - (dot(r - p, r - p) - dot(P - p, P - p)) * 0.003, 0.0, 1.0) * (1.0 - pow(e / destruction, 5)) * (dot(Q((r - uniform_array[8]) * 0.009), d) * 0.1 + 0.9);

    c = texture(surface_texture, j.xz).x * scales[1].z;
    r = texture(surface_texture, k.xz).x * scales[1].w;
#else
    h = noise_matrix * p * 0.007;
    i = noise_matrix * h * 2.61;
    j = noise_matrix * i * 2.11;
    k = noise_matrix * j * 2.11;

  {
    d=normalize(d+reflect(-d,normalize(p-r))*.2);
    destruction = -0.2;
    world_toggle = !world_toggle;
  }

  // World chosen affects iteration parameters.
  if(world_toggle)
  {
    march_params = vec4(0.05, 0.0, 0.98, 0.022);
  }
