diff --git a/lib/rbx_loader/src/union.rs b/lib/rbx_loader/src/union.rs
index 74e92fe..5a9a492 100644
--- a/lib/rbx_loader/src/union.rs
+++ b/lib/rbx_loader/src/union.rs
@@ -4,7 +4,7 @@ use crate::primitives::{CUBE_DEFAULT_VERTICES,CUBE_DEFAULT_POLYS};
 use rbx_mesh::mesh_data::{VertexId as MeshDataVertexId,NormalId2 as MeshDataNormalId2};
 use rbx_mesh::physics_data::VertexId as PhysicsDataVertexId;
 use strafesnet_common::model::{self,IndexedVertex,PolygonGroup,PolygonGroupId,PolygonList,RenderConfigId};
-use strafesnet_common::integer::vec3;
+use strafesnet_common::integer::{vec3,Planar64Vec3};
 
 #[allow(dead_code)]
 #[derive(Debug)]
@@ -169,8 +169,15 @@ pub fn convert(
 		});
 		polygon_groups_normal_it.chain(physics_convex_meshes_it).collect::<Result<_,_>>()?
 	}else{
+		let size=Planar64Vec3::new(size.to_array().map(|a|a.try_into().unwrap()));
 		// generate a unit cube as default physics
-		let pos_list=CUBE_DEFAULT_VERTICES.map(|pos|mb.acquire_pos_id(pos));
+		let pos_list=CUBE_DEFAULT_VERTICES.map(|pos|
+			mb.acquire_pos_id(Planar64Vec3::new([
+				(pos.x*size.x).narrow_1().unwrap(),
+				(pos.y*size.y).narrow_1().unwrap(),
+				(pos.z*size.z).narrow_1().unwrap(),
+			]))
+		);
 		let tex=mb.acquire_tex_id(glam::Vec2::ZERO);
 		let normal=mb.acquire_normal_id(vec3::ZERO);
 		let color=mb.acquire_color_id(glam::Vec4::ONE);