diff --git a/src/java/mmm/Mmm.java b/src/java/mmm/Mmm.java
index 75382cd..3e210bd 100644
--- a/src/java/mmm/Mmm.java
+++ b/src/java/mmm/Mmm.java
@@ -1,5 +1,6 @@
 package mmm;
 
+import mmm.deco.DecorativeBlocks;
 import mmm.utils.URegistration;
 import net.minecraftforge.fml.common.Mod;
 import net.minecraftforge.fml.common.Mod.EventHandler;
@@ -21,6 +22,7 @@ public class Mmm {
 	public static abstract class CommonProxy {
 
 		public void preInit(FMLPreInitializationEvent event) {
+			DecorativeBlocks.preInit();
 			URegistration.registerRecipes();
 		}
 
diff --git a/src/java/mmm/deco/DBlockTable.java b/src/java/mmm/deco/DBlockTable.java
new file mode 100644
index 0000000..fb6c77a
--- /dev/null
+++ b/src/java/mmm/deco/DBlockTable.java
@@ -0,0 +1,259 @@
+package mmm.deco;
+
+import java.util.List;
+
+import mmm.Mmm;
+import mmm.utils.I_URecipeRegistrar;
+import mmm.utils.UMaths;
+import mmm.utils.URegistration;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockPlanks;
+import net.minecraft.block.SoundType;
+import net.minecraft.block.material.MapColor;
+import net.minecraft.block.material.Material;
+import net.minecraft.block.properties.IProperty;
+import net.minecraft.block.properties.PropertyBool;
+import net.minecraft.block.state.BlockStateContainer;
+import net.minecraft.block.state.IBlockState;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.Entity;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.BlockRenderLayer;
+import net.minecraft.util.Mirror;
+import net.minecraft.util.Rotation;
+import net.minecraft.util.math.AxisAlignedBB;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+import net.minecraftforge.fml.common.registry.GameRegistry;
+import net.minecraftforge.fml.relauncher.Side;
+import net.minecraftforge.fml.relauncher.SideOnly;
+
+public class DBlockTable extends Block implements I_URecipeRegistrar {
+
+	public final static String ID = "deco_table_";
+	public final static String NAME = Mmm.PREFIX + ID;
+
+	public static enum E_WoodType {
+		OAK("oak", BlockPlanks.EnumType.OAK), //
+		BIRCH("birch", BlockPlanks.EnumType.BIRCH), //
+		SPRUCE("spruce", BlockPlanks.EnumType.SPRUCE), //
+		JUNGLE("jungle", BlockPlanks.EnumType.JUNGLE), //
+		DARK_OAK("dark_oak", BlockPlanks.EnumType.DARK_OAK), //
+		ACACIA("acacia", BlockPlanks.EnumType.ACACIA);
+
+		public final String suffix;
+		public final int metaData;
+		public final MapColor mapColor;
+		public final Block block;
+
+		private E_WoodType(String suffix, BlockPlanks.EnumType planks) {
+			this.suffix = suffix;
+			this.metaData = planks.getMetadata();
+			this.mapColor = planks.getMapColor();
+			this.block = Blocks.PLANKS;
+		}
+	}
+
+	protected static final AxisAlignedBB COLLISION_TOP = UMaths.makeBlockAABB(0, 12, 0, 16, 16, 16);
+	protected static final AxisAlignedBB COLLISION_LEGS[] = { //
+			UMaths.makeBlockAABB(1, 0, 1, 3, 12, 3), //
+			UMaths.makeBlockAABB(13, 0, 1, 15, 12, 3), //
+			UMaths.makeBlockAABB(13, 0, 13, 15, 12, 15), //
+			UMaths.makeBlockAABB(1, 0, 13, 3, 12, 15), //
+	};
+
+	public static final PropertyBool NORTH = PropertyBool.create("north");
+	public static final PropertyBool EAST = PropertyBool.create("east");
+	public static final PropertyBool SOUTH = PropertyBool.create("south");
+	public static final PropertyBool WEST = PropertyBool.create("west");
+	public static final PropertyBool NW = PropertyBool.create("nw");
+	public static final PropertyBool NE = PropertyBool.create("ne");
+	public static final PropertyBool SW = PropertyBool.create("sw");
+	public static final PropertyBool SE = PropertyBool.create("se");
+	private static final PropertyBool[] DIRECTIONS = { //
+			NORTH, NE, EAST, SE, SOUTH, SW, WEST, NW//
+	};
+
+	public final E_WoodType type;
+
+	public DBlockTable(E_WoodType type) {
+		super(Material.WOOD, type.mapColor);
+		this.type = type;
+
+		this.setDefaultState(this.blockState.getBaseState()//
+				.withProperty(NORTH, Boolean.valueOf(false))//
+				.withProperty(EAST, Boolean.valueOf(false))//
+				.withProperty(SOUTH, Boolean.valueOf(false))//
+				.withProperty(WEST, Boolean.valueOf(false))//
+				.withProperty(NW, Boolean.valueOf(false))//
+				.withProperty(NE, Boolean.valueOf(false))//
+				.withProperty(SW, Boolean.valueOf(false))//
+				.withProperty(SE, Boolean.valueOf(false)));
+
+		this.setCreativeTab(CreativeTabs.DECORATIONS);
+		this.setRegistryName(ID + type.suffix);
+		this.setUnlocalizedName(NAME + type.suffix);
+
+		this.lightOpacity = 0;
+		this.translucent = false;
+		this.fullBlock = false;
+		this.blockHardness = 2.5f;
+		this.blockResistance = 12.5f;
+		this.blockSoundType = SoundType.LADDER;
+		this.enableStats = false;
+
+		this.setHarvestLevel("axe", 0);
+
+		URegistration.addBlock(this);
+	}
+
+	@Override
+	public void registerRecipe() {
+		GameRegistry.addShapedRecipe(new ItemStack(this), //
+				"BBB", //
+				"S S", //
+				'B', new ItemStack(this.type.block, 1, this.type.metaData), //
+				'S', Items.STICK //
+		);
+	}
+
+	@Override
+	public boolean isOpaqueCube(IBlockState state) {
+		return false;
+	}
+
+	@Override
+	public boolean isFullCube(IBlockState state) {
+		return false;
+	}
+
+	public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos) {
+		return worldIn.getBlockState(pos).getBlock() == this;
+	}
+
+	@Override
+	protected BlockStateContainer createBlockState() {
+		return new BlockStateContainer(this, new IProperty[] { NORTH, EAST, WEST, SOUTH, NE, NW, SE, SW });
+	}
+
+	@Override
+	public int getMetaFromState(IBlockState state) {
+		return 0;
+	}
+
+	@Override
+	public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) {
+		BlockPos n = pos.north();
+		BlockPos s = pos.south();
+		BlockPos w = pos.west();
+		BlockPos e = pos.east();
+		return state.withProperty(NORTH, Boolean.valueOf(this.canConnectTo(worldIn, n)))//
+				.withProperty(EAST, Boolean.valueOf(this.canConnectTo(worldIn, e)))//
+				.withProperty(SOUTH, Boolean.valueOf(this.canConnectTo(worldIn, s)))//
+				.withProperty(WEST, Boolean.valueOf(this.canConnectTo(worldIn, w)))//
+				.withProperty(NW, Boolean.valueOf(this.canConnectTo(worldIn, n.west())))//
+				.withProperty(NE, Boolean.valueOf(this.canConnectTo(worldIn, n.east())))//
+				.withProperty(SW, Boolean.valueOf(this.canConnectTo(worldIn, s.west())))//
+				.withProperty(SE, Boolean.valueOf(this.canConnectTo(worldIn, s.east())))//
+		;
+	}
+
+	@Override
+	public IBlockState withRotation(IBlockState state, Rotation rot) {
+		switch (rot) {
+		case CLOCKWISE_180:
+			return state.withProperty(NORTH, state.getValue(SOUTH))//
+					.withProperty(EAST, state.getValue(WEST))//
+					.withProperty(SOUTH, state.getValue(NORTH))//
+					.withProperty(WEST, state.getValue(EAST))//
+					.withProperty(NW, state.getValue(SE))//
+					.withProperty(NE, state.getValue(SW))//
+					.withProperty(SE, state.getValue(NW))//
+					.withProperty(SW, state.getValue(NE))//
+			;
+		case COUNTERCLOCKWISE_90:
+			return state.withProperty(NORTH, state.getValue(EAST))//
+					.withProperty(EAST, state.getValue(SOUTH))//
+					.withProperty(SOUTH, state.getValue(WEST))//
+					.withProperty(WEST, state.getValue(NORTH))//
+					.withProperty(NW, state.getValue(NE))//
+					.withProperty(NE, state.getValue(SE))//
+					.withProperty(SE, state.getValue(SW))//
+					.withProperty(SW, state.getValue(NW))//
+			;
+		case CLOCKWISE_90:
+			return state.withProperty(NORTH, state.getValue(WEST))//
+					.withProperty(EAST, state.getValue(NORTH))//
+					.withProperty(SOUTH, state.getValue(EAST))//
+					.withProperty(WEST, state.getValue(SOUTH))//
+					.withProperty(NW, state.getValue(SW))//
+					.withProperty(NE, state.getValue(NW))//
+					.withProperty(SE, state.getValue(NE))//
+					.withProperty(SW, state.getValue(SE))//
+			;
+		default:
+			return state;
+		}
+	}
+
+	@Override
+	public IBlockState withMirror(IBlockState state, Mirror mirrorIn) {
+		switch (mirrorIn) {
+		case LEFT_RIGHT:
+			return state.withProperty(NORTH, state.getValue(SOUTH))//
+					.withProperty(SOUTH, state.getValue(NORTH))//
+					.withProperty(NW, state.getValue(SW))//
+					.withProperty(NE, state.getValue(SE))//
+					.withProperty(SW, state.getValue(NW))//
+					.withProperty(SE, state.getValue(NE))//
+			;
+		case FRONT_BACK:
+			return state.withProperty(EAST, state.getValue(WEST))//
+					.withProperty(WEST, state.getValue(EAST))//
+					.withProperty(NW, state.getValue(NE))//
+					.withProperty(NE, state.getValue(NW))//
+					.withProperty(SW, state.getValue(SE))//
+					.withProperty(SE, state.getValue(SW))//
+			;
+		default:
+			return state;
+		}
+	}
+
+	@Override
+	public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
+		IBlockState actual = this.getActualState(state, source, pos);
+		for (int i = 0, dir = 0; i < 4; i++, dir += 2) {
+			boolean c0 = actual.getValue(DIRECTIONS[dir]);
+			boolean c1 = actual.getValue(DIRECTIONS[(dir + 6) % 8]);
+			boolean c10 = actual.getValue(DIRECTIONS[(dir + 7) % 8]);
+			if (!(c0 || c1) || (c0 && c1 && !c10)) {
+				return FULL_BLOCK_AABB;
+			}
+		}
+		return COLLISION_TOP;
+	}
+
+	@Override
+	public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB container,
+			List<AxisAlignedBB> output, Entity entity) {
+		IBlockState actual = this.getActualState(state, worldIn, pos);
+		addCollisionBoxToList(pos, container, output, COLLISION_TOP);
+		for (int i = 0, dir = 0; i < 4; i++, dir += 2) {
+			boolean c0 = actual.getValue(DIRECTIONS[dir]);
+			boolean c1 = actual.getValue(DIRECTIONS[(dir + 6) % 8]);
+			boolean c10 = actual.getValue(DIRECTIONS[(dir + 7) % 8]);
+			if (!(c0 || c1) || (c0 && c1 && !c10)) {
+				addCollisionBoxToList(pos, container, output, COLLISION_LEGS[i]);
+			}
+		}
+	}
+
+	@SideOnly(Side.CLIENT)
+	public BlockRenderLayer getBlockLayer() {
+		return BlockRenderLayer.CUTOUT;
+	}
+}
diff --git a/src/java/mmm/deco/DecorativeBlocks.java b/src/java/mmm/deco/DecorativeBlocks.java
new file mode 100644
index 0000000..14719fc
--- /dev/null
+++ b/src/java/mmm/deco/DecorativeBlocks.java
@@ -0,0 +1,25 @@
+package mmm.deco;
+
+public class DecorativeBlocks {
+	
+	public static final DBlockTable TABLE_OAK;
+	public static final DBlockTable TABLE_BIRCH;
+	public static final DBlockTable TABLE_SPRUCE;
+	public static final DBlockTable TABLE_JUNGLE;
+	public static final DBlockTable TABLE_DARK_OAK;
+	public static final DBlockTable TABLE_ACACIA;
+
+	static {
+		TABLE_OAK = new DBlockTable( DBlockTable.E_WoodType.OAK );
+		TABLE_BIRCH = new DBlockTable( DBlockTable.E_WoodType.BIRCH );
+		TABLE_SPRUCE = new DBlockTable( DBlockTable.E_WoodType.SPRUCE );
+		TABLE_JUNGLE = new DBlockTable( DBlockTable.E_WoodType.JUNGLE );
+		TABLE_DARK_OAK = new DBlockTable( DBlockTable.E_WoodType.DARK_OAK );
+		TABLE_ACACIA = new DBlockTable( DBlockTable.E_WoodType.ACACIA );
+	}
+
+	public static void preInit() {
+		// EMPTY
+	}
+
+}
diff --git a/src/resources/assets/mmm/blockstates/deco_table_acacia.json b/src/resources/assets/mmm/blockstates/deco_table_acacia.json
new file mode 100644
index 0000000..fae7079
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco_table_acacia.json
@@ -0,0 +1,144 @@
+{
+    "multipart": [
+    	{
+    		"apply": { "model": "mmm:deco/table/acacia/top" }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "west": "false" } ,
+    			{ "north": "true" , "west": "true", "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/leg" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "east": "false" } ,
+    			{ "north": "true" , "east": "true", "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/leg", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "east": "false" } ,
+    			{ "south": "true" , "east": "true", "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/leg", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "west": "false" } ,
+    			{ "south": "true" , "west": "true", "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/leg", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "west": "false" } ,
+    			{ "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/legtop" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "east": "false" } ,
+    			{ "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/legtop", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "east": "false" } ,
+    			{ "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/legtop", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "west": "false" } ,
+    			{ "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/legtop", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "north": "false" } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_main" }
+    	} ,
+    	{
+    		"when": { "east": "false" } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_main" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "south": "false" } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_main" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "west": "false" } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_main" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "nw": false } ,
+    			{ "north": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_north" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "ne": false } ,
+    			{ "east": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_north" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "se": false } ,
+    			{ "south": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_north" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "sw": false } ,
+    			{ "west": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_north" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "nw": false } ,
+    			{ "west": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_west" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "ne": false } ,
+    			{ "north": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_west" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "se": false } ,
+    			{ "east": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_west" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "sw": false } ,
+    			{ "south": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/acacia/support_west" , "y": 270 }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/blockstates/deco_table_birch.json b/src/resources/assets/mmm/blockstates/deco_table_birch.json
new file mode 100644
index 0000000..bbb395b
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco_table_birch.json
@@ -0,0 +1,144 @@
+{
+    "multipart": [
+    	{
+    		"apply": { "model": "mmm:deco/table/birch/top" }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "west": "false" } ,
+    			{ "north": "true" , "west": "true", "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/leg" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "east": "false" } ,
+    			{ "north": "true" , "east": "true", "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/leg", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "east": "false" } ,
+    			{ "south": "true" , "east": "true", "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/leg", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "west": "false" } ,
+    			{ "south": "true" , "west": "true", "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/leg", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "west": "false" } ,
+    			{ "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/legtop" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "east": "false" } ,
+    			{ "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/legtop", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "east": "false" } ,
+    			{ "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/legtop", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "west": "false" } ,
+    			{ "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/legtop", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "north": "false" } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_main" }
+    	} ,
+    	{
+    		"when": { "east": "false" } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_main" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "south": "false" } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_main" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "west": "false" } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_main" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "nw": false } ,
+    			{ "north": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_north" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "ne": false } ,
+    			{ "east": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_north" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "se": false } ,
+    			{ "south": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_north" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "sw": false } ,
+    			{ "west": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_north" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "nw": false } ,
+    			{ "west": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_west" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "ne": false } ,
+    			{ "north": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_west" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "se": false } ,
+    			{ "east": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_west" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "sw": false } ,
+    			{ "south": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/birch/support_west" , "y": 270 }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/blockstates/deco_table_dark_oak.json b/src/resources/assets/mmm/blockstates/deco_table_dark_oak.json
new file mode 100644
index 0000000..5b7ae77
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco_table_dark_oak.json
@@ -0,0 +1,144 @@
+{
+    "multipart": [
+    	{
+    		"apply": { "model": "mmm:deco/table/dark_oak/top" }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "west": "false" } ,
+    			{ "north": "true" , "west": "true", "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/leg" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "east": "false" } ,
+    			{ "north": "true" , "east": "true", "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/leg", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "east": "false" } ,
+    			{ "south": "true" , "east": "true", "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/leg", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "west": "false" } ,
+    			{ "south": "true" , "west": "true", "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/leg", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "west": "false" } ,
+    			{ "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/legtop" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "east": "false" } ,
+    			{ "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/legtop", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "east": "false" } ,
+    			{ "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/legtop", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "west": "false" } ,
+    			{ "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/legtop", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "north": "false" } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_main" }
+    	} ,
+    	{
+    		"when": { "east": "false" } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_main" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "south": "false" } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_main" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "west": "false" } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_main" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "nw": false } ,
+    			{ "north": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_north" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "ne": false } ,
+    			{ "east": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_north" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "se": false } ,
+    			{ "south": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_north" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "sw": false } ,
+    			{ "west": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_north" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "nw": false } ,
+    			{ "west": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_west" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "ne": false } ,
+    			{ "north": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_west" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "se": false } ,
+    			{ "east": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_west" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "sw": false } ,
+    			{ "south": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/dark_oak/support_west" , "y": 270 }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/blockstates/deco_table_jungle.json b/src/resources/assets/mmm/blockstates/deco_table_jungle.json
new file mode 100644
index 0000000..be0b521
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco_table_jungle.json
@@ -0,0 +1,144 @@
+{
+    "multipart": [
+    	{
+    		"apply": { "model": "mmm:deco/table/jungle/top" }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "west": "false" } ,
+    			{ "north": "true" , "west": "true", "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/leg" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "east": "false" } ,
+    			{ "north": "true" , "east": "true", "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/leg", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "east": "false" } ,
+    			{ "south": "true" , "east": "true", "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/leg", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "west": "false" } ,
+    			{ "south": "true" , "west": "true", "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/leg", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "west": "false" } ,
+    			{ "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/legtop" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "east": "false" } ,
+    			{ "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/legtop", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "east": "false" } ,
+    			{ "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/legtop", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "west": "false" } ,
+    			{ "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/legtop", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "north": "false" } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_main" }
+    	} ,
+    	{
+    		"when": { "east": "false" } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_main" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "south": "false" } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_main" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "west": "false" } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_main" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "nw": false } ,
+    			{ "north": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_north" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "ne": false } ,
+    			{ "east": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_north" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "se": false } ,
+    			{ "south": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_north" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "sw": false } ,
+    			{ "west": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_north" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "nw": false } ,
+    			{ "west": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_west" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "ne": false } ,
+    			{ "north": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_west" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "se": false } ,
+    			{ "east": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_west" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "sw": false } ,
+    			{ "south": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/jungle/support_west" , "y": 270 }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/blockstates/deco_table_oak.json b/src/resources/assets/mmm/blockstates/deco_table_oak.json
new file mode 100644
index 0000000..013e1d1
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco_table_oak.json
@@ -0,0 +1,144 @@
+{
+    "multipart": [
+    	{
+    		"apply": { "model": "mmm:deco/table/oak/top" }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "west": "false" } ,
+    			{ "north": "true" , "west": "true", "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/leg" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "east": "false" } ,
+    			{ "north": "true" , "east": "true", "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/leg", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "east": "false" } ,
+    			{ "south": "true" , "east": "true", "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/leg", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "west": "false" } ,
+    			{ "south": "true" , "west": "true", "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/leg", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "west": "false" } ,
+    			{ "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/legtop" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "east": "false" } ,
+    			{ "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/legtop", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "east": "false" } ,
+    			{ "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/legtop", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "west": "false" } ,
+    			{ "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/legtop", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "north": "false" } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_main" }
+    	} ,
+    	{
+    		"when": { "east": "false" } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_main" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "south": "false" } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_main" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "west": "false" } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_main" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "nw": false } ,
+    			{ "north": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_north" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "ne": false } ,
+    			{ "east": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_north" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "se": false } ,
+    			{ "south": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_north" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "sw": false } ,
+    			{ "west": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_north" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "nw": false } ,
+    			{ "west": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_west" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "ne": false } ,
+    			{ "north": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_west" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "se": false } ,
+    			{ "east": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_west" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "sw": false } ,
+    			{ "south": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/oak/support_west" , "y": 270 }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/blockstates/deco_table_spruce.json b/src/resources/assets/mmm/blockstates/deco_table_spruce.json
new file mode 100644
index 0000000..4da69e4
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco_table_spruce.json
@@ -0,0 +1,144 @@
+{
+    "multipart": [
+    	{
+    		"apply": { "model": "mmm:deco/table/spruce/top" }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "west": "false" } ,
+    			{ "north": "true" , "west": "true", "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/leg" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" , "east": "false" } ,
+    			{ "north": "true" , "east": "true", "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/leg", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "east": "false" } ,
+    			{ "south": "true" , "east": "true", "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/leg", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" , "west": "false" } ,
+    			{ "south": "true" , "west": "true", "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/leg", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "west": "false" } ,
+    			{ "nw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/legtop" }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "north": "false" } ,
+    			{ "east": "false" } ,
+    			{ "ne": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/legtop", "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "east": "false" } ,
+    			{ "se": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/legtop", "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR": [
+    			{ "south": "false" } ,
+    			{ "west": "false" } ,
+    			{ "sw": "false" }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/legtop", "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "north": "false" } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_main" }
+    	} ,
+    	{
+    		"when": { "east": "false" } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_main" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "south": "false" } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_main" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "west": "false" } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_main" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "nw": false } ,
+    			{ "north": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_north" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "ne": false } ,
+    			{ "east": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_north" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "se": false } ,
+    			{ "south": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_north" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "sw": false } ,
+    			{ "west": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_north" , "y": 270 }
+    	} ,
+
+    	{
+    		"when": { "OR" : [
+    			{ "west": "true" , "nw": false } ,
+    			{ "west": "true" , "north": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_west" }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "north": "true" , "ne": false } ,
+    			{ "north": "true" , "east": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_west" , "y": 90 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "east": "true" , "se": false } ,
+    			{ "east": "true" , "south": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_west" , "y": 180 }
+    	} ,
+    	{
+    		"when": { "OR" : [
+    			{ "south": "true" , "sw": false } ,
+    			{ "south": "true" , "west": false }
+    		] } ,
+    		"apply": { "model": "mmm:deco/table/spruce/support_west" , "y": 270 }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/lang/en_US.lang b/src/resources/assets/mmm/lang/en_US.lang
new file mode 100644
index 0000000..022d373
--- /dev/null
+++ b/src/resources/assets/mmm/lang/en_US.lang
@@ -0,0 +1,6 @@
+tile.mmm.deco_table_oak.name=Oak table
+tile.mmm.deco_table_birch.name=Birch table
+tile.mmm.deco_table_spruce.name=Spruce table
+tile.mmm.deco_table_acacia.name=Acacia table
+tile.mmm.deco_table_jungle.name=Jungle wood table
+tile.mmm.deco_table_dark_oak.name=Dark oak table
diff --git a/src/resources/assets/mmm/models/block/deco/table/acacia/leg.json b/src/resources/assets/mmm/models/block/deco/table/acacia/leg.json
new file mode 100644
index 0000000..f872c88
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/acacia/leg.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/leg",
+    "textures": {
+        "body": "minecraft:blocks/planks_acacia",
+        "leg": "minecraft:blocks/log_acacia"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/acacia/legtop.json b/src/resources/assets/mmm/models/block/deco/table/acacia/legtop.json
new file mode 100644
index 0000000..96b923e
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/acacia/legtop.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/legtop",
+    "textures": {
+        "body": "minecraft:blocks/planks_acacia",
+        "leg": "minecraft:blocks/log_acacia"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/acacia/support_main.json b/src/resources/assets/mmm/models/block/deco/table/acacia/support_main.json
new file mode 100644
index 0000000..20696c5
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/acacia/support_main.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_main",
+    "textures": {
+        "body": "minecraft:blocks/planks_acacia",
+        "leg": "minecraft:blocks/log_acacia"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/acacia/support_north.json b/src/resources/assets/mmm/models/block/deco/table/acacia/support_north.json
new file mode 100644
index 0000000..fc0cddc
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/acacia/support_north.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_north",
+    "textures": {
+        "body": "minecraft:blocks/planks_acacia",
+        "leg": "minecraft:blocks/log_acacia"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/acacia/support_west.json b/src/resources/assets/mmm/models/block/deco/table/acacia/support_west.json
new file mode 100644
index 0000000..0aac075
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/acacia/support_west.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_west",
+    "textures": {
+        "body": "minecraft:blocks/planks_acacia",
+        "leg": "minecraft:blocks/log_acacia"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/acacia/top.json b/src/resources/assets/mmm/models/block/deco/table/acacia/top.json
new file mode 100644
index 0000000..cc2ee91
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/acacia/top.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/top",
+    "textures": {
+        "body": "minecraft:blocks/planks_acacia",
+        "leg": "minecraft:blocks/log_acacia"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/birch/leg.json b/src/resources/assets/mmm/models/block/deco/table/birch/leg.json
new file mode 100644
index 0000000..4e70aba
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/birch/leg.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/leg",
+    "textures": {
+        "body": "minecraft:blocks/planks_birch",
+        "leg": "minecraft:blocks/log_birch"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/birch/legtop.json b/src/resources/assets/mmm/models/block/deco/table/birch/legtop.json
new file mode 100644
index 0000000..b2e7b43
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/birch/legtop.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/legtop",
+    "textures": {
+        "body": "minecraft:blocks/planks_birch",
+        "leg": "minecraft:blocks/log_birch"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/birch/support_main.json b/src/resources/assets/mmm/models/block/deco/table/birch/support_main.json
new file mode 100644
index 0000000..e7e8505
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/birch/support_main.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_main",
+    "textures": {
+        "body": "minecraft:blocks/planks_birch",
+        "leg": "minecraft:blocks/log_birch"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/birch/support_north.json b/src/resources/assets/mmm/models/block/deco/table/birch/support_north.json
new file mode 100644
index 0000000..cc8cca8
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/birch/support_north.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_north",
+    "textures": {
+        "body": "minecraft:blocks/planks_birch",
+        "leg": "minecraft:blocks/log_birch"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/birch/support_west.json b/src/resources/assets/mmm/models/block/deco/table/birch/support_west.json
new file mode 100644
index 0000000..af3164c
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/birch/support_west.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_west",
+    "textures": {
+        "body": "minecraft:blocks/planks_birch",
+        "leg": "minecraft:blocks/log_birch"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/birch/top.json b/src/resources/assets/mmm/models/block/deco/table/birch/top.json
new file mode 100644
index 0000000..3c4a83f
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/birch/top.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/top",
+    "textures": {
+        "body": "minecraft:blocks/planks_birch",
+        "leg": "minecraft:blocks/log_birch"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/dark_oak/leg.json b/src/resources/assets/mmm/models/block/deco/table/dark_oak/leg.json
new file mode 100644
index 0000000..2fe96c9
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/dark_oak/leg.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/leg",
+    "textures": {
+        "body": "minecraft:blocks/planks_big_oak",
+        "leg": "minecraft:blocks/log_big_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/dark_oak/legtop.json b/src/resources/assets/mmm/models/block/deco/table/dark_oak/legtop.json
new file mode 100644
index 0000000..3336f60
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/dark_oak/legtop.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/legtop",
+    "textures": {
+        "body": "minecraft:blocks/planks_big_oak",
+        "leg": "minecraft:blocks/log_big_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_main.json b/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_main.json
new file mode 100644
index 0000000..562dac1
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_main.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_main",
+    "textures": {
+        "body": "minecraft:blocks/planks_big_oak",
+        "leg": "minecraft:blocks/log_big_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_north.json b/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_north.json
new file mode 100644
index 0000000..67b834b
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_north.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_north",
+    "textures": {
+        "body": "minecraft:blocks/planks_big_oak",
+        "leg": "minecraft:blocks/log_big_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_west.json b/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_west.json
new file mode 100644
index 0000000..b0497a5
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/dark_oak/support_west.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_west",
+    "textures": {
+        "body": "minecraft:blocks/planks_big_oak",
+        "leg": "minecraft:blocks/log_big_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/dark_oak/top.json b/src/resources/assets/mmm/models/block/deco/table/dark_oak/top.json
new file mode 100644
index 0000000..c9f8ed5
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/dark_oak/top.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/top",
+    "textures": {
+        "body": "minecraft:blocks/planks_big_oak",
+        "leg": "minecraft:blocks/log_big_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/jungle/leg.json b/src/resources/assets/mmm/models/block/deco/table/jungle/leg.json
new file mode 100644
index 0000000..d4c6fc0
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/jungle/leg.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/leg",
+    "textures": {
+        "body": "minecraft:blocks/planks_jungle",
+        "leg": "minecraft:blocks/log_jungle"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/jungle/legtop.json b/src/resources/assets/mmm/models/block/deco/table/jungle/legtop.json
new file mode 100644
index 0000000..91db9ff
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/jungle/legtop.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/legtop",
+    "textures": {
+        "body": "minecraft:blocks/planks_jungle",
+        "leg": "minecraft:blocks/log_jungle"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/jungle/support_main.json b/src/resources/assets/mmm/models/block/deco/table/jungle/support_main.json
new file mode 100644
index 0000000..cea6ed6
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/jungle/support_main.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_main",
+    "textures": {
+        "body": "minecraft:blocks/planks_jungle",
+        "leg": "minecraft:blocks/log_jungle"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/jungle/support_north.json b/src/resources/assets/mmm/models/block/deco/table/jungle/support_north.json
new file mode 100644
index 0000000..88302a4
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/jungle/support_north.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_north",
+    "textures": {
+        "body": "minecraft:blocks/planks_jungle",
+        "leg": "minecraft:blocks/log_jungle"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/jungle/support_west.json b/src/resources/assets/mmm/models/block/deco/table/jungle/support_west.json
new file mode 100644
index 0000000..6858ca8
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/jungle/support_west.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_west",
+    "textures": {
+        "body": "minecraft:blocks/planks_jungle",
+        "leg": "minecraft:blocks/log_jungle"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/jungle/top.json b/src/resources/assets/mmm/models/block/deco/table/jungle/top.json
new file mode 100644
index 0000000..3e67f74
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/jungle/top.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/top",
+    "textures": {
+        "body": "minecraft:blocks/planks_jungle",
+        "leg": "minecraft:blocks/log_jungle"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/leg.json b/src/resources/assets/mmm/models/block/deco/table/leg.json
new file mode 100644
index 0000000..9cb9133
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/leg.json
@@ -0,0 +1,18 @@
+{
+    "textures": {
+        "particle": "#body"
+    },
+    "elements": [
+    	{
+    		"from": [ 1, 0, 1 ],
+    		"to": [ 3, 12, 3 ],
+             "faces": {
+                "down":  { "texture": "#leg", "cullface": "down" },
+                "north": { "texture": "#leg" },
+                "south": { "texture": "#leg" },
+                "west":  { "texture": "#leg" },
+                "east":  { "texture": "#leg" }
+            }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/legtop.json b/src/resources/assets/mmm/models/block/deco/table/legtop.json
new file mode 100644
index 0000000..31274b8
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/legtop.json
@@ -0,0 +1,18 @@
+{
+    "textures": {
+        "particle": "#body"
+    },
+    "elements": [
+    	{
+    		"from": [ 1, 12, 1 ],
+    		"to": [ 3, 15, 3 ],
+             "faces": {
+                "down": { "texture": "#body" },
+                "north": { "texture": "#body" },
+                "south": { "texture": "#body" },
+                "west":  { "texture": "#body" },
+                "east":  { "texture": "#body" }
+            }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/oak/leg.json b/src/resources/assets/mmm/models/block/deco/table/oak/leg.json
new file mode 100644
index 0000000..921801f
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/oak/leg.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/leg",
+    "textures": {
+        "body": "minecraft:blocks/planks_oak",
+        "leg": "minecraft:blocks/log_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/oak/legtop.json b/src/resources/assets/mmm/models/block/deco/table/oak/legtop.json
new file mode 100644
index 0000000..6c82255
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/oak/legtop.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/legtop",
+    "textures": {
+        "body": "minecraft:blocks/planks_oak",
+        "leg": "minecraft:blocks/log_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/oak/support_main.json b/src/resources/assets/mmm/models/block/deco/table/oak/support_main.json
new file mode 100644
index 0000000..068fefa
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/oak/support_main.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_main",
+    "textures": {
+        "body": "minecraft:blocks/planks_oak",
+        "leg": "minecraft:blocks/log_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/oak/support_north.json b/src/resources/assets/mmm/models/block/deco/table/oak/support_north.json
new file mode 100644
index 0000000..1d7a8f5
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/oak/support_north.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_north",
+    "textures": {
+        "body": "minecraft:blocks/planks_oak",
+        "leg": "minecraft:blocks/log_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/oak/support_west.json b/src/resources/assets/mmm/models/block/deco/table/oak/support_west.json
new file mode 100644
index 0000000..ac55935
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/oak/support_west.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_west",
+    "textures": {
+        "body": "minecraft:blocks/planks_oak",
+        "leg": "minecraft:blocks/log_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/oak/top.json b/src/resources/assets/mmm/models/block/deco/table/oak/top.json
new file mode 100644
index 0000000..278614d
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/oak/top.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/top",
+    "textures": {
+        "body": "minecraft:blocks/planks_oak",
+        "leg": "minecraft:blocks/log_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/spruce/leg.json b/src/resources/assets/mmm/models/block/deco/table/spruce/leg.json
new file mode 100644
index 0000000..9d3a4ae
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/spruce/leg.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/leg",
+    "textures": {
+        "body": "minecraft:blocks/planks_spruce",
+        "leg": "minecraft:blocks/log_spruce"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/spruce/legtop.json b/src/resources/assets/mmm/models/block/deco/table/spruce/legtop.json
new file mode 100644
index 0000000..d928ec6
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/spruce/legtop.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/legtop",
+    "textures": {
+        "body": "minecraft:blocks/planks_spruce",
+        "leg": "minecraft:blocks/log_spruce"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/spruce/support_main.json b/src/resources/assets/mmm/models/block/deco/table/spruce/support_main.json
new file mode 100644
index 0000000..6f4e77e
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/spruce/support_main.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_main",
+    "textures": {
+        "body": "minecraft:blocks/planks_spruce",
+        "leg": "minecraft:blocks/log_spruce"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/spruce/support_north.json b/src/resources/assets/mmm/models/block/deco/table/spruce/support_north.json
new file mode 100644
index 0000000..ee40f62
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/spruce/support_north.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_north",
+    "textures": {
+        "body": "minecraft:blocks/planks_spruce",
+        "leg": "minecraft:blocks/log_spruce"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/spruce/support_west.json b/src/resources/assets/mmm/models/block/deco/table/spruce/support_west.json
new file mode 100644
index 0000000..e2ea401
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/spruce/support_west.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/support_west",
+    "textures": {
+        "body": "minecraft:blocks/planks_spruce",
+        "leg": "minecraft:blocks/log_spruce"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/spruce/top.json b/src/resources/assets/mmm/models/block/deco/table/spruce/top.json
new file mode 100644
index 0000000..ce73114
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/spruce/top.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:block/deco/table/top",
+    "textures": {
+        "body": "minecraft:blocks/planks_spruce",
+        "leg": "minecraft:blocks/log_spruce"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/support_main.json b/src/resources/assets/mmm/models/block/deco/table/support_main.json
new file mode 100644
index 0000000..c635db1
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/support_main.json
@@ -0,0 +1,16 @@
+{
+    "textures": {
+        "particle": "#body"
+    },
+    "elements": [
+    	{
+    		"from": [ 3, 12, 1 ],
+    		"to": [ 13, 15, 3 ],
+             "faces": {
+                "north": { "texture": "#body" },
+                "south": { "texture": "#body" },
+                "down":  { "texture": "#body" }
+            }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/support_north.json b/src/resources/assets/mmm/models/block/deco/table/support_north.json
new file mode 100644
index 0000000..bf43272
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/support_north.json
@@ -0,0 +1,16 @@
+{
+    "textures": {
+        "particle": "#body"
+    },
+    "elements": [
+    	{
+    		"from": [ 1, 12, 0 ],
+    		"to": [ 3, 15, 1 ],
+             "faces": {
+                "east": { "texture": "#body" },
+                "west": { "texture": "#body" },
+                "down":  { "texture": "#body" }
+            }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/support_west.json b/src/resources/assets/mmm/models/block/deco/table/support_west.json
new file mode 100644
index 0000000..55e5181
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/support_west.json
@@ -0,0 +1,16 @@
+{
+    "textures": {
+        "particle": "#body"
+    },
+    "elements": [
+    	{
+    		"from": [ 0, 12, 1 ],
+    		"to": [ 1, 15, 3 ],
+             "faces": {
+                "north": { "texture": "#body" },
+                "south": { "texture": "#body" },
+                "down":  { "texture": "#body" }
+            }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/models/block/deco/table/top.json b/src/resources/assets/mmm/models/block/deco/table/top.json
new file mode 100644
index 0000000..2aa0b47
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/table/top.json
@@ -0,0 +1,19 @@
+{
+    "textures": {
+        "particle": "#body"
+    },
+    "elements": [
+    	{
+    		"from": [ 0, 15, 0 ],
+    		"to": [ 16, 16, 16 ],
+             "faces": {
+                "down":  { "texture": "#body" },
+                "up":    { "texture": "#body", "cullface": "up" },
+                "north": { "texture": "#body", "cullface": "north" },
+                "south": { "texture": "#body", "cullface": "south" },
+                "west":  { "texture": "#body", "cullface": "west" },
+                "east":  { "texture": "#body", "cullface": "east" }
+            }
+    	}
+    ]
+}
diff --git a/src/resources/assets/mmm/models/item/deco_table.json b/src/resources/assets/mmm/models/item/deco_table.json
new file mode 100644
index 0000000..6380757
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco_table.json
@@ -0,0 +1,135 @@
+{
+    "textures": {
+        "body": "#body",
+        "legs": "#legs",
+        "particle": "#body"
+    },
+    "elements": [
+    	{
+    		"from": [ 1, 0, 1 ],
+    		"to": [ 3, 12, 3 ],
+             "faces": {
+                "down":  { "texture": "#legs", "cullface": "down" },
+                "up":    { "texture": "#legs" },
+                "north": { "texture": "#legs" },
+                "south": { "texture": "#legs" },
+                "west":  { "texture": "#legs" },
+                "east":  { "texture": "#legs" }
+            }
+    	},
+    	{
+    		"from": [ 13, 0, 1 ],
+    		"to": [ 15, 12, 3 ],
+             "faces": {
+                "down":  { "texture": "#legs", "cullface": "down" },
+                "up":    { "texture": "#legs" },
+                "north": { "texture": "#legs" },
+                "south": { "texture": "#legs" },
+                "west":  { "texture": "#legs" },
+                "east":  { "texture": "#legs" }
+            }
+    	},
+    	{
+    		"from": [ 1, 0, 13 ],
+    		"to": [ 3, 12, 15 ],
+             "faces": {
+                "down":  { "texture": "#legs", "cullface": "down" },
+                "up":    { "texture": "#legs" },
+                "north": { "texture": "#legs" },
+                "south": { "texture": "#legs" },
+                "west":  { "texture": "#legs" },
+                "east":  { "texture": "#legs" }
+            }
+    	},
+    	{
+    		"from": [ 13, 0, 13 ],
+    		"to": [ 15, 12, 15 ],
+             "faces": {
+                "down":  { "texture": "#legs", "cullface": "down" },
+                "up":    { "texture": "#legs" },
+                "north": { "texture": "#legs" },
+                "south": { "texture": "#legs" },
+                "west":  { "texture": "#legs" },
+                "east":  { "texture": "#legs" }
+            }
+        },
+    	{
+    		"from": [ 1, 12, 1 ],
+    		"to": [ 3, 15, 15 ],
+             "faces": {
+                "down":  { "texture": "#body" },
+                "north": { "texture": "#body" },
+                "south": { "texture": "#body" },
+                "west":  { "texture": "#body" },
+                "east":  { "texture": "#body" }
+            }
+    	},
+    	{
+    		"from": [ 13, 12, 1 ],
+    		"to": [ 15, 15, 15 ],
+             "faces": {
+                "down":  { "texture": "#body" },
+                "north": { "texture": "#body" },
+                "south": { "texture": "#body" },
+                "west":  { "texture": "#body" },
+                "east":  { "texture": "#body" }
+            }
+    	},
+    	{
+    		"from": [ 3, 12, 1 ],
+    		"to": [ 13, 15, 3 ],
+             "faces": {
+                "down":  { "texture": "#body" },
+                "north": { "texture": "#body" },
+                "south": { "texture": "#body" },
+                "west":  { "texture": "#body" },
+                "east":  { "texture": "#body" }
+            }
+    	},
+    	{
+    		"from": [ 3, 12, 13 ],
+    		"to": [ 13, 15, 15 ],
+             "faces": {
+                "down":  { "texture": "#body" },
+                "north": { "texture": "#body" },
+                "south": { "texture": "#body" },
+                "west":  { "texture": "#body" },
+                "east":  { "texture": "#body" }
+            }
+    	},
+    	{
+    		"from": [ 0, 15, 0 ],
+    		"to": [ 16, 16, 16 ],
+             "faces": {
+                "down":  { "texture": "#body" },
+                "up":    { "texture": "#body", "cullface": "up" },
+                "north": { "texture": "#body", "cullface": "north" },
+                "south": { "texture": "#body", "cullface": "south" },
+                "west":  { "texture": "#body", "cullface": "west" },
+                "east":  { "texture": "#body", "cullface": "east" }
+            }
+    	}
+    ],
+	"display": {
+		"thirdperson_righthand": {
+			"rotation": [ 10, -45, 10 ],
+			"translation": [ 0, 1.5, -1.75 ],
+			"scale": [ 0.375, 0.375, 0.375 ]
+		},
+		"firstperson_righthand": {
+			"rotation": [ 10, -45, 10 ],
+			"translation": [ 0, 1.5, -1.75 ],
+			"scale": [ 0.375, 0.375, 0.375 ]
+		},
+		"ground": {
+			"rotation": [ 0, 0, 0 ],
+			"translation": [ 0, 1, 0 ],
+			"scale": [ 0.375, 0.375, 0.375 ]
+		},
+		"gui": {
+			"rotation": [ 30, 45, 0 ],
+			"translation": [ 0, 0, 0 ],
+			"scale": [ 0.5, 0.5, 0.5 ]
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/resources/assets/mmm/models/item/deco_table_acacia.json b/src/resources/assets/mmm/models/item/deco_table_acacia.json
new file mode 100644
index 0000000..04ba117
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco_table_acacia.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:item/deco_table",
+    "textures": {
+        "body": "minecraft:blocks/planks_acacia",
+        "legs": "minecraft:blocks/log_acacia"
+    }
+}
diff --git a/src/resources/assets/mmm/models/item/deco_table_birch.json b/src/resources/assets/mmm/models/item/deco_table_birch.json
new file mode 100644
index 0000000..e6a39b8
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco_table_birch.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:item/deco_table",
+    "textures": {
+        "body": "minecraft:blocks/planks_birch",
+        "legs": "minecraft:blocks/log_birch"
+    }
+}
diff --git a/src/resources/assets/mmm/models/item/deco_table_dark_oak.json b/src/resources/assets/mmm/models/item/deco_table_dark_oak.json
new file mode 100644
index 0000000..0791c4a
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco_table_dark_oak.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:item/deco_table",
+    "textures": {
+        "body": "minecraft:blocks/planks_big_oak",
+        "legs": "minecraft:blocks/log_big_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/item/deco_table_jungle.json b/src/resources/assets/mmm/models/item/deco_table_jungle.json
new file mode 100644
index 0000000..e9c4f81
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco_table_jungle.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:item/deco_table",
+    "textures": {
+        "body": "minecraft:blocks/planks_jungle",
+        "legs": "minecraft:blocks/log_jungle"
+    }
+}
diff --git a/src/resources/assets/mmm/models/item/deco_table_oak.json b/src/resources/assets/mmm/models/item/deco_table_oak.json
new file mode 100644
index 0000000..4aab987
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco_table_oak.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:item/deco_table",
+    "textures": {
+        "body": "minecraft:blocks/planks_oak",
+        "legs": "minecraft:blocks/log_oak"
+    }
+}
diff --git a/src/resources/assets/mmm/models/item/deco_table_spruce.json b/src/resources/assets/mmm/models/item/deco_table_spruce.json
new file mode 100644
index 0000000..eadfeae
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco_table_spruce.json
@@ -0,0 +1,7 @@
+{
+	"parent": "mmm:item/deco_table",
+    "textures": {
+        "body": "minecraft:blocks/planks_spruce",
+        "legs": "minecraft:blocks/log_spruce"
+    }
+}