 
 const int num_points_u = 104;
 const int num_points_v = 105;
-const int total_num_points_per_face = 104 * 105;
-const int face_divisor = 2;
+const vec2 num_points_factors = vec2(1.0 / float(num_points_u), 1.0 / float(num_points_v) );
+
+const int total_num_points_per_face = 10920;
+const float face_divisor = 0.5;
+const float bb_size_divisor = 1.0/65535.0;
 
 const ivec3 rgb_777_shift_vec   = ivec3(25, 18, 11);
 const ivec3 rgb_777_mask_vec    = ivec3(0x7F, 0x7F, 0x7F);

  int v_component = qz_normal_enumerator / num_points_u;
  int u_component = qz_normal_enumerator % num_points_u;

  int main_axis = face_id / face_divisor;

  float first_component = (u_component / float(num_points_u) ) * 2.0 - 1.0;
  float second_component = (v_component / float(num_points_v) ) * 2.0 - 1.0;

  vec3 unswizzled_components = vec3(first_component, 
                                    second_component,
                                    is_main_axis_negative * sqrt(-(first_component*first_component) - (second_component*second_component) + 1) );

  vec3 normal_to_assign = unswizzled_components.zxy;


  uint in_qz_pos_z = ( qz_pos_z_normal_enum ) & 0xFFFF;

  // dequantize position
  out_position = bb_min_pos + ivec3(in_qz_pos_x, in_qz_pos_y, in_qz_pos_z) * bb_size_divisor * ( (bb_max_pos - bb_min_pos) );
}

void dequantize_radius_11(in uint rgb777_and_radius_11, in float rad_min, in float rad_max,
