diff --git a/Source/Core/Builder.csproj b/Source/Core/Builder.csproj
index 29e0ee72b744b606fadfacc1c54a3bdaafcef3fb..e591273c9704aa7eedec406da4a4267c4f9c2207 100644
--- a/Source/Core/Builder.csproj
+++ b/Source/Core/Builder.csproj
@@ -165,16 +165,16 @@
     <Compile Include="Actions\ActionManager.cs" />
     <Compile Include="Config\CompilerInfo.cs" />
     <Compile Include="Config\ConfigurationInfo.cs" />
-    <Compile Include="GZBuilder\Controls\PairedFloatControl.cs">
+    <Compile Include="Controls\PairedFloatControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\PairedFloatControl.Designer.cs">
+    <Compile Include="Controls\PairedFloatControl.Designer.cs">
       <DependentUpon>PairedFloatControl.cs</DependentUpon>
     </Compile>
-    <Compile Include="GZBuilder\Windows\ThingStatisticsForm.cs">
+    <Compile Include="Windows\ThingStatisticsForm.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Windows\ThingStatisticsForm.Designer.cs">
+    <Compile Include="Windows\ThingStatisticsForm.Designer.cs">
       <DependentUpon>ThingStatisticsForm.cs</DependentUpon>
     </Compile>
     <Compile Include="VisualModes\VisualBlockMap.cs" />
@@ -543,10 +543,10 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="GZBuilder\Controls\PairedFloatControl.resx">
+    <EmbeddedResource Include="Controls\PairedFloatControl.resx">
       <DependentUpon>PairedFloatControl.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Windows\ThingStatisticsForm.resx">
+    <EmbeddedResource Include="Windows\ThingStatisticsForm.resx">
       <DependentUpon>ThingStatisticsForm.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="Windows\AboutForm.resx">
@@ -828,46 +828,46 @@
     <Compile Include="General\UpdateChecker.cs" />
     <Compile Include="Geometry\CurveTools.cs" />
     <Compile Include="Geometry\InterpolationTools.cs" />
-    <Compile Include="GZBuilder\Controls\AngleControl.cs">
+    <Compile Include="Controls\AngleControlEx.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\AngleControl.Designer.cs">
-      <DependentUpon>AngleControl.cs</DependentUpon>
+    <Compile Include="Controls\AngleControlEx.Designer.cs">
+      <DependentUpon>AngleControlEx.cs</DependentUpon>
     </Compile>
-    <Compile Include="GZBuilder\Controls\ColorFieldsControl.cs">
+    <Compile Include="Controls\ColorFieldsControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\ColorFieldsControl.Designer.cs">
+    <Compile Include="Controls\ColorFieldsControl.Designer.cs">
       <DependentUpon>ColorFieldsControl.cs</DependentUpon>
     </Compile>
-    <Compile Include="GZBuilder\Controls\TagsSelector.cs">
+    <Compile Include="Controls\TagsSelector.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\TagsSelector.Designer.cs">
+    <Compile Include="Controls\TagsSelector.Designer.cs">
       <DependentUpon>TagsSelector.cs</DependentUpon>
     </Compile>
     <Compile Include="Controls\CheckedColoredListBox.cs">
       <SubType>Component</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\MultiSelectTreeview.cs">
+    <Compile Include="Controls\MultiSelectTreeview.cs">
       <SubType>Component</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\PairedFieldsControl.cs">
+    <Compile Include="Controls\PairedFieldsControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\PairedFieldsControl.Designer.cs">
+    <Compile Include="Controls\PairedFieldsControl.Designer.cs">
       <DependentUpon>PairedFieldsControl.cs</DependentUpon>
     </Compile>
-    <Compile Include="GZBuilder\Controls\PairedIntControl.cs">
+    <Compile Include="Controls\PairedIntControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\PairedIntControl.Designer.cs">
+    <Compile Include="Controls\PairedIntControl.Designer.cs">
       <DependentUpon>PairedIntControl.cs</DependentUpon>
     </Compile>
-    <Compile Include="GZBuilder\Controls\TagSelector.cs">
+    <Compile Include="Controls\TagSelector.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Controls\TagSelector.Designer.cs">
+    <Compile Include="Controls\TagSelector.Designer.cs">
       <DependentUpon>TagSelector.cs</DependentUpon>
     </Compile>
     <Compile Include="GZBuilder\Data\BoundingBox.cs" />
@@ -883,32 +883,30 @@
     <Compile Include="GZBuilder\Data\ScriptItem.cs" />
     <Compile Include="GZBuilder\Data\SharpCompressHelper.cs" />
     <Compile Include="GZBuilder\Data\SkyboxInfo.cs" />
-    <Compile Include="GZBuilder\Rendering\SizelessVisualThingCage.cs" />
-    <Compile Include="GZBuilder\Rendering\ThingBoundingBox.cs" />
     <Compile Include="GZBuilder\Data\ThingCopyData.cs" />
-    <Compile Include="GZBuilder\Rendering\VisualVertexHandle.cs" />
-    <Compile Include="GZBuilder\Geometry\Line3D.cs" />
-    <Compile Include="GZBuilder\GZDoom\DecorateParserSE.cs" />
-    <Compile Include="GZBuilder\GZDoom\GldefsParser.cs" />
-    <Compile Include="GZBuilder\GZDoom\MapinfoParser.cs" />
-    <Compile Include="GZBuilder\GZDoom\ModeldefParser.cs" />
-    <Compile Include="GZBuilder\GZDoom\ModeldefParserSE.cs" />
-    <Compile Include="GZBuilder\GZDoom\ModeldefStructure.cs" />
-    <Compile Include="GZBuilder\GZDoom\ScriptTypeParserSE.cs" />
+    <Compile Include="Rendering\VisualVertexHandle.cs" />
+    <Compile Include="Geometry\Line3D.cs" />
+    <Compile Include="ZDoom\Scripting\DecorateParserSE.cs" />
+    <Compile Include="ZDoom\GldefsParser.cs" />
+    <Compile Include="ZDoom\MapinfoParser.cs" />
+    <Compile Include="ZDoom\ModeldefParser.cs" />
+    <Compile Include="ZDoom\Scripting\ModeldefParserSE.cs" />
+    <Compile Include="ZDoom\ModeldefStructure.cs" />
+    <Compile Include="ZDoom\Scripting\ScriptTypeParserSE.cs" />
     <Compile Include="GZBuilder\GZGeneral.cs" />
     <Compile Include="GZBuilder\md3\GZModel.cs" />
     <Compile Include="GZBuilder\md3\ModelReader.cs" />
-    <Compile Include="GZBuilder\GZDoom\AcsParserSE.cs" />
-    <Compile Include="GZBuilder\Windows\ExceptionDialog.cs">
+    <Compile Include="ZDoom\Scripting\AcsParserSE.cs" />
+    <Compile Include="Windows\ExceptionDialog.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Windows\ExceptionDialog.designer.cs">
+    <Compile Include="Windows\ExceptionDialog.designer.cs">
       <DependentUpon>ExceptionDialog.cs</DependentUpon>
     </Compile>
-    <Compile Include="GZBuilder\Windows\TagStatisticsForm.cs">
+    <Compile Include="Windows\TagStatisticsForm.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GZBuilder\Windows\TagStatisticsForm.Designer.cs">
+    <Compile Include="Windows\TagStatisticsForm.Designer.cs">
       <DependentUpon>TagStatisticsForm.cs</DependentUpon>
     </Compile>
     <Compile Include="IO\ClipboardStreamReader.cs" />
@@ -1074,28 +1072,28 @@
       <SubType>Designer</SubType>
       <DependentUpon>ThingBrowserControl.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Controls\AngleControl.resx">
-      <DependentUpon>AngleControl.cs</DependentUpon>
+    <EmbeddedResource Include="Controls\AngleControlEx.resx">
+      <DependentUpon>AngleControlEx.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Controls\ColorFieldsControl.resx">
+    <EmbeddedResource Include="Controls\ColorFieldsControl.resx">
       <DependentUpon>ColorFieldsControl.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Controls\TagsSelector.resx">
+    <EmbeddedResource Include="Controls\TagsSelector.resx">
       <DependentUpon>TagsSelector.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Controls\PairedFieldsControl.resx">
+    <EmbeddedResource Include="Controls\PairedFieldsControl.resx">
       <DependentUpon>PairedFieldsControl.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Controls\PairedIntControl.resx">
+    <EmbeddedResource Include="Controls\PairedIntControl.resx">
       <DependentUpon>PairedIntControl.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Controls\TagSelector.resx">
+    <EmbeddedResource Include="Controls\TagSelector.resx">
       <DependentUpon>TagSelector.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Windows\ExceptionDialog.resx">
+    <EmbeddedResource Include="Windows\ExceptionDialog.resx">
       <DependentUpon>ExceptionDialog.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GZBuilder\Windows\TagStatisticsForm.resx">
+    <EmbeddedResource Include="Windows\TagStatisticsForm.resx">
       <DependentUpon>TagStatisticsForm.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="Resources\Crosshair.png" />
diff --git a/Source/Core/Config/ResourceTextureSet.cs b/Source/Core/Config/ResourceTextureSet.cs
index 29882db90408a606156474c2314152a319e0b6e8..59ac4c4769aab3ea85ac9307ac6e0e73ce8dee4d 100644
--- a/Source/Core/Config/ResourceTextureSet.cs
+++ b/Source/Core/Config/ResourceTextureSet.cs
@@ -18,7 +18,6 @@
 
 using System.Collections.Generic;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.IO;
 
 #endregion
 
diff --git a/Source/Core/GZBuilder/Controls/AngleControl.Designer.cs b/Source/Core/Controls/AngleControlEx.Designer.cs
similarity index 92%
rename from Source/Core/GZBuilder/Controls/AngleControl.Designer.cs
rename to Source/Core/Controls/AngleControlEx.Designer.cs
index f146a0811638e86f1351eef1902d7af67c38744b..71446a5a7b8bd1fe78fcaaa90bda46ad3dbd7548 100644
--- a/Source/Core/GZBuilder/Controls/AngleControl.Designer.cs
+++ b/Source/Core/Controls/AngleControlEx.Designer.cs
@@ -1,6 +1,6 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
-	partial class AngleControl
+	partial class AngleControlEx
 	{
 		/// <summary> 
 		/// Required designer variable.
diff --git a/Source/Core/GZBuilder/Controls/AngleControl.cs b/Source/Core/Controls/AngleControlEx.cs
similarity index 94%
rename from Source/Core/GZBuilder/Controls/AngleControl.cs
rename to Source/Core/Controls/AngleControlEx.cs
index 0b9bcf0b9f32174f6d6c561eb78e53bf2f508831..1cf2dd87a165df29f4de825fcef104f0a629ab9c 100644
--- a/Source/Core/GZBuilder/Controls/AngleControl.cs
+++ b/Source/Core/Controls/AngleControlEx.cs
@@ -12,9 +12,9 @@ using CodeImp.DoomBuilder.Geometry;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
-	public partial class AngleControl : UserControl
+	public partial class AngleControlEx : UserControl
 	{
 		#region Variables
 
@@ -48,7 +48,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Controls
 
 		#endregion
 
-		public AngleControl() 
+		public AngleControlEx() 
 		{
 			InitializeComponent();
 			this.DoubleBuffered = true;
diff --git a/Source/Core/GZBuilder/Controls/AngleControl.resx b/Source/Core/Controls/AngleControlEx.resx
similarity index 100%
rename from Source/Core/GZBuilder/Controls/AngleControl.resx
rename to Source/Core/Controls/AngleControlEx.resx
diff --git a/Source/Core/Controls/ArgumentBox.cs b/Source/Core/Controls/ArgumentBox.cs
index c51f166220f888101d40d3a70d12caef0a4695b3..447aef5fe11ced41963a2746ff2a7a4ced4ce6c1 100644
--- a/Source/Core/Controls/ArgumentBox.cs
+++ b/Source/Core/Controls/ArgumentBox.cs
@@ -17,15 +17,12 @@
 #region ================== Namespaces
 
 using System;
-using System.Collections.Generic;
 using System.ComponentModel;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Types;
 using System.Globalization;
-using CodeImp.DoomBuilder.GZBuilder.Controls;
-using CodeImp.DoomBuilder.Map;
 
 #endregion
 
diff --git a/Source/Core/GZBuilder/Controls/ColorFieldsControl.Designer.cs b/Source/Core/Controls/ColorFieldsControl.Designer.cs
similarity index 95%
rename from Source/Core/GZBuilder/Controls/ColorFieldsControl.Designer.cs
rename to Source/Core/Controls/ColorFieldsControl.Designer.cs
index c18b94aaa4b5e425b92a310387d0aa8550e72572..12381ac966c5e8999c0f736245a9e0a1ebb93559 100644
--- a/Source/Core/GZBuilder/Controls/ColorFieldsControl.Designer.cs
+++ b/Source/Core/Controls/ColorFieldsControl.Designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	partial class ColorFieldsControl
 	{
diff --git a/Source/Core/GZBuilder/Controls/ColorFieldsControl.cs b/Source/Core/Controls/ColorFieldsControl.cs
similarity index 94%
rename from Source/Core/GZBuilder/Controls/ColorFieldsControl.cs
rename to Source/Core/Controls/ColorFieldsControl.cs
index b2747de24e15d70d41b683a6845133ceced6d02b..dc0d524eb38cf405228139886a5c58221b04d1df 100644
--- a/Source/Core/GZBuilder/Controls/ColorFieldsControl.cs
+++ b/Source/Core/Controls/ColorFieldsControl.cs
@@ -9,7 +9,7 @@ using CodeImp.DoomBuilder.Rendering;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	public partial class ColorFieldsControl : UserControl
 	{
diff --git a/Source/Core/GZBuilder/Controls/ColorFieldsControl.resx b/Source/Core/Controls/ColorFieldsControl.resx
similarity index 100%
rename from Source/Core/GZBuilder/Controls/ColorFieldsControl.resx
rename to Source/Core/Controls/ColorFieldsControl.resx
diff --git a/Source/Core/Controls/FieldsEditorControl.cs b/Source/Core/Controls/FieldsEditorControl.cs
index 3adbbfeb73daa53760d63620a24298f63f6aff14..7c08243668824f011ba1750c02742eb5006e3083 100644
--- a/Source/Core/Controls/FieldsEditorControl.cs
+++ b/Source/Core/Controls/FieldsEditorControl.cs
@@ -23,7 +23,6 @@ using System.Drawing;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Map;
-using System.Globalization;
 using CodeImp.DoomBuilder.Types;
 
 #endregion
diff --git a/Source/Core/GZBuilder/Controls/MultiSelectTreeview.cs b/Source/Core/Controls/MultiSelectTreeview.cs
similarity index 96%
rename from Source/Core/GZBuilder/Controls/MultiSelectTreeview.cs
rename to Source/Core/Controls/MultiSelectTreeview.cs
index f2f0b37b00a9a6ce2b90b578de08e2b9eae03a06..8063a7979914a8858a3991d3ce67d6614c12619a 100644
--- a/Source/Core/GZBuilder/Controls/MultiSelectTreeview.cs
+++ b/Source/Core/Controls/MultiSelectTreeview.cs
@@ -72,11 +72,10 @@ using System.Collections.Generic;
 using System.ComponentModel;
 using System.Drawing;
 using System.Windows.Forms;
-using CodeImp.DoomBuilder.Controls;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	#region TreeViewSelectionMode enumeration
 
diff --git a/Source/Core/GZBuilder/Controls/PairedFieldsControl.Designer.cs b/Source/Core/Controls/PairedFieldsControl.Designer.cs
similarity index 95%
rename from Source/Core/GZBuilder/Controls/PairedFieldsControl.Designer.cs
rename to Source/Core/Controls/PairedFieldsControl.Designer.cs
index dd5a916475f5a64b2462cbd755b59352ef9e5bb1..aac401934190edb5f2f15bc0c7cc85126e92fe6d 100644
--- a/Source/Core/GZBuilder/Controls/PairedFieldsControl.Designer.cs
+++ b/Source/Core/Controls/PairedFieldsControl.Designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	partial class PairedFieldsControl
 	{
diff --git a/Source/Core/GZBuilder/Controls/PairedFieldsControl.cs b/Source/Core/Controls/PairedFieldsControl.cs
similarity index 95%
rename from Source/Core/GZBuilder/Controls/PairedFieldsControl.cs
rename to Source/Core/Controls/PairedFieldsControl.cs
index 9da16f1c7d9c2fb50d6053c870e87837f83d560c..f06f5a2b4f12885c8fe58136745dbb4f893523d9 100644
--- a/Source/Core/GZBuilder/Controls/PairedFieldsControl.cs
+++ b/Source/Core/Controls/PairedFieldsControl.cs
@@ -8,7 +8,7 @@ using CodeImp.DoomBuilder.Properties;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	public partial class PairedFieldsControl : UserControl
 	{
diff --git a/Source/Core/GZBuilder/Controls/PairedFieldsControl.resx b/Source/Core/Controls/PairedFieldsControl.resx
similarity index 100%
rename from Source/Core/GZBuilder/Controls/PairedFieldsControl.resx
rename to Source/Core/Controls/PairedFieldsControl.resx
diff --git a/Source/Core/GZBuilder/Controls/PairedFloatControl.Designer.cs b/Source/Core/Controls/PairedFloatControl.Designer.cs
similarity index 96%
rename from Source/Core/GZBuilder/Controls/PairedFloatControl.Designer.cs
rename to Source/Core/Controls/PairedFloatControl.Designer.cs
index d8345b781757663a10692adce9211c4cc2d96e5a..5d1a84329164d458dd922d458c27fd6e0b9b066c 100644
--- a/Source/Core/GZBuilder/Controls/PairedFloatControl.Designer.cs
+++ b/Source/Core/Controls/PairedFloatControl.Designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
     partial class PairedFloatControl
     {
diff --git a/Source/Core/GZBuilder/Controls/PairedFloatControl.cs b/Source/Core/Controls/PairedFloatControl.cs
similarity index 95%
rename from Source/Core/GZBuilder/Controls/PairedFloatControl.cs
rename to Source/Core/Controls/PairedFloatControl.cs
index 8cfa28cfcbde7c663b05743264b779543cbcfb85..aa3149c029ac4cc3f1e57379ed9eb10d446c5022 100644
--- a/Source/Core/GZBuilder/Controls/PairedFloatControl.cs
+++ b/Source/Core/Controls/PairedFloatControl.cs
@@ -3,7 +3,7 @@ using System.Globalization;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Properties;
 
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
     public partial class PairedFloatControl : UserControl
     {
diff --git a/Source/Core/GZBuilder/Controls/PairedFloatControl.resx b/Source/Core/Controls/PairedFloatControl.resx
similarity index 100%
rename from Source/Core/GZBuilder/Controls/PairedFloatControl.resx
rename to Source/Core/Controls/PairedFloatControl.resx
diff --git a/Source/Core/GZBuilder/Controls/PairedIntControl.Designer.cs b/Source/Core/Controls/PairedIntControl.Designer.cs
similarity index 95%
rename from Source/Core/GZBuilder/Controls/PairedIntControl.Designer.cs
rename to Source/Core/Controls/PairedIntControl.Designer.cs
index 103e1710f85ea7f0ad1ce71d704a296533c9a06a..9b454e65e67098615af843238ff5aae2c1c870fe 100644
--- a/Source/Core/GZBuilder/Controls/PairedIntControl.Designer.cs
+++ b/Source/Core/Controls/PairedIntControl.Designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	partial class PairedIntControl
 	{
diff --git a/Source/Core/GZBuilder/Controls/PairedIntControl.cs b/Source/Core/Controls/PairedIntControl.cs
similarity index 94%
rename from Source/Core/GZBuilder/Controls/PairedIntControl.cs
rename to Source/Core/Controls/PairedIntControl.cs
index 0587c95c0087ef1cc897e36af3bb69474b44ca9b..8bacae16343025e1f3343560a2c52bb5fa5cde9c 100644
--- a/Source/Core/GZBuilder/Controls/PairedIntControl.cs
+++ b/Source/Core/Controls/PairedIntControl.cs
@@ -6,7 +6,7 @@ using System.Windows.Forms;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	public partial class PairedIntControl : UserControl
 	{
diff --git a/Source/Core/GZBuilder/Controls/PairedIntControl.resx b/Source/Core/Controls/PairedIntControl.resx
similarity index 100%
rename from Source/Core/GZBuilder/Controls/PairedIntControl.resx
rename to Source/Core/Controls/PairedIntControl.resx
diff --git a/Source/Core/Controls/ScriptDocumentTab.cs b/Source/Core/Controls/ScriptDocumentTab.cs
index 2c2248394ce1c5195a238ff3efe57478bf4bf033..342c98d55d200f49cf27362459969503988cb32c 100644
--- a/Source/Core/Controls/ScriptDocumentTab.cs
+++ b/Source/Core/Controls/ScriptDocumentTab.cs
@@ -27,7 +27,7 @@ using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Compilers;
 using CodeImp.DoomBuilder.GZBuilder.Data;
-using CodeImp.DoomBuilder.GZBuilder.GZDoom;
+using CodeImp.DoomBuilder.ZDoom.Scripting;
 using ScintillaNET;
 
 #endregion
diff --git a/Source/Core/Controls/ScriptFileDocumentTab.cs b/Source/Core/Controls/ScriptFileDocumentTab.cs
index 51fb1a5adffb9f33de75a8d69ef58d7c58bfc9de..5e2035f4e1dddf6ddd303943a1ecf2ddacaa2075 100644
--- a/Source/Core/Controls/ScriptFileDocumentTab.cs
+++ b/Source/Core/Controls/ScriptFileDocumentTab.cs
@@ -23,7 +23,7 @@ using System.Windows.Forms;
 using CodeImp.DoomBuilder.Compilers;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.GZBuilder.GZDoom;
+using CodeImp.DoomBuilder.ZDoom.Scripting;
 
 #endregion
 
diff --git a/Source/Core/Controls/SectorSlopeControl.Designer.cs b/Source/Core/Controls/SectorSlopeControl.Designer.cs
index 556090cfbe537362de6d582ee7d548388f26506f..3a2f3e23f7fbae2de263f8c9434a508645467955 100644
--- a/Source/Core/Controls/SectorSlopeControl.Designer.cs
+++ b/Source/Core/Controls/SectorSlopeControl.Designer.cs
@@ -35,7 +35,7 @@
 			this.angletrackbar = new System.Windows.Forms.TrackBar();
 			this.label1 = new System.Windows.Forms.Label();
 			this.pivotmodeselector = new System.Windows.Forms.ComboBox();
-			this.rotationcontrol = new CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl();
+			this.rotationcontrol = new CodeImp.DoomBuilder.Controls.AngleControlEx();
 			this.slopeangle = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.sloperotation = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.slopeoffset = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
@@ -224,7 +224,7 @@
 		private System.Windows.Forms.Button reset;
 		private ButtonsNumericTextbox slopeoffset;
 		private System.Windows.Forms.Label label18;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl rotationcontrol;
+		private CodeImp.DoomBuilder.Controls.AngleControlEx rotationcontrol;
 		private System.Windows.Forms.TrackBar angletrackbar;
 		private System.Windows.Forms.Label label1;
 		private System.Windows.Forms.ComboBox pivotmodeselector;
diff --git a/Source/Core/Controls/SectorSlopeControl.cs b/Source/Core/Controls/SectorSlopeControl.cs
index d954e6819fa3beb867be244c7f290d8ba14a06a6..46573f67e70fa24680b0a331d719eb25f8d33197 100644
--- a/Source/Core/Controls/SectorSlopeControl.cs
+++ b/Source/Core/Controls/SectorSlopeControl.cs
@@ -129,7 +129,7 @@ namespace CodeImp.DoomBuilder.Controls
 			if(float.IsNaN(anglexy)) 
 			{
 				sloperotation.Text = "";
-				rotationcontrol.Angle = GZBuilder.Controls.AngleControl.NO_ANGLE;
+				rotationcontrol.Angle = AngleControlEx.NO_ANGLE;
 			} 
 			else 
 			{
@@ -173,7 +173,7 @@ namespace CodeImp.DoomBuilder.Controls
 			preventchanges = true;
 
 			anglexy = General.ClampAngle(sloperotation.GetResultFloat(float.NaN));
-			rotationcontrol.Angle = (float.IsNaN(anglexy) ? GZBuilder.Controls.AngleControl.NO_ANGLE : (int)Math.Round(anglexy + 90));
+			rotationcontrol.Angle = (float.IsNaN(anglexy) ? AngleControlEx.NO_ANGLE : (int)Math.Round(anglexy + 90));
 
 			if(OnAnglesChanged != null) OnAnglesChanged(this, EventArgs.Empty);
 			preventchanges = false;
diff --git a/Source/Core/GZBuilder/Controls/TagSelector.Designer.cs b/Source/Core/Controls/TagSelector.Designer.cs
similarity index 96%
rename from Source/Core/GZBuilder/Controls/TagSelector.Designer.cs
rename to Source/Core/Controls/TagSelector.Designer.cs
index 139c6d99db6cd283b3782b98ef48b18d5f568c3c..ccc41ebf0428b94a2d30136303672211108275b2 100644
--- a/Source/Core/GZBuilder/Controls/TagSelector.Designer.cs
+++ b/Source/Core/Controls/TagSelector.Designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	partial class TagSelector
 	{
diff --git a/Source/Core/GZBuilder/Controls/TagSelector.cs b/Source/Core/Controls/TagSelector.cs
similarity index 94%
rename from Source/Core/GZBuilder/Controls/TagSelector.cs
rename to Source/Core/Controls/TagSelector.cs
index e2689760ef46d38022b03f3485dbd0335b340e73..4c6189aab6803db9621f98b9676ed8d136c65788 100644
--- a/Source/Core/GZBuilder/Controls/TagSelector.cs
+++ b/Source/Core/Controls/TagSelector.cs
@@ -9,7 +9,7 @@ using CodeImp.DoomBuilder.Types;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	internal struct TagInfo
 	{
diff --git a/Source/Core/GZBuilder/Controls/TagSelector.resx b/Source/Core/Controls/TagSelector.resx
similarity index 100%
rename from Source/Core/GZBuilder/Controls/TagSelector.resx
rename to Source/Core/Controls/TagSelector.resx
diff --git a/Source/Core/GZBuilder/Controls/TagsSelector.Designer.cs b/Source/Core/Controls/TagsSelector.Designer.cs
similarity index 96%
rename from Source/Core/GZBuilder/Controls/TagsSelector.Designer.cs
rename to Source/Core/Controls/TagsSelector.Designer.cs
index 4286506cff9cefb6b89f27294aaf69cfb76cbad5..2bfb017afced2c3a1cb88e3f9fe6dd61349c8f64 100644
--- a/Source/Core/GZBuilder/Controls/TagsSelector.Designer.cs
+++ b/Source/Core/Controls/TagsSelector.Designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	partial class TagsSelector
 	{
diff --git a/Source/Core/GZBuilder/Controls/TagsSelector.cs b/Source/Core/Controls/TagsSelector.cs
similarity index 95%
rename from Source/Core/GZBuilder/Controls/TagsSelector.cs
rename to Source/Core/Controls/TagsSelector.cs
index 64835763c184264b9b4799e1d205bae8181bbb3f..2153306456423e445e6aa4dc4e0ac4171cd84599 100644
--- a/Source/Core/GZBuilder/Controls/TagsSelector.cs
+++ b/Source/Core/Controls/TagsSelector.cs
@@ -8,7 +8,7 @@ using CodeImp.DoomBuilder.Types;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Controls
+namespace CodeImp.DoomBuilder.Controls
 {
 	public partial class TagsSelector : UserControl
 	{
diff --git a/Source/Core/GZBuilder/Controls/TagsSelector.resx b/Source/Core/Controls/TagsSelector.resx
similarity index 100%
rename from Source/Core/GZBuilder/Controls/TagsSelector.resx
rename to Source/Core/Controls/TagsSelector.resx
diff --git a/Source/Core/Controls/ThingBrowserControl.Designer.cs b/Source/Core/Controls/ThingBrowserControl.Designer.cs
index db492290de784e116c34821acc4c34b4a787d743..92657cef07ab329e861cad93ab78bb6fb635437c 100644
--- a/Source/Core/Controls/ThingBrowserControl.Designer.cs
+++ b/Source/Core/Controls/ThingBrowserControl.Designer.cs
@@ -46,7 +46,7 @@ namespace CodeImp.DoomBuilder.Controls
 			this.tbFilter = new System.Windows.Forms.TextBox();
 			this.bClear = new System.Windows.Forms.Button();
 			this.updatetimer = new System.Windows.Forms.Timer(this.components);
-			this.typelist = new CodeImp.DoomBuilder.GZBuilder.Controls.MultiSelectTreeview();
+			this.typelist = new CodeImp.DoomBuilder.Controls.MultiSelectTreeview();
 			this.spritetex = new CodeImp.DoomBuilder.Controls.ConfigurablePictureBox();
 			this.typeid = new CodeImp.DoomBuilder.Controls.NumericTextbox();
 			this.infopanel.SuspendLayout();
@@ -277,7 +277,7 @@ namespace CodeImp.DoomBuilder.Controls
 			this.typelist.Name = "typelist";
 			this.typelist.SelectedImageIndex = 0;
 			this.typelist.SelectionBackColor = System.Drawing.SystemColors.Highlight;
-			this.typelist.SelectionMode = CodeImp.DoomBuilder.GZBuilder.Controls.TreeViewSelectionMode.SingleSelect;
+			this.typelist.SelectionMode = CodeImp.DoomBuilder.Controls.TreeViewSelectionMode.SingleSelect;
 			this.typelist.ShowNodeToolTips = true;
 			this.typelist.Size = new System.Drawing.Size(304, 203);
 			this.typelist.TabIndex = 22;
@@ -353,7 +353,7 @@ namespace CodeImp.DoomBuilder.Controls
 		private System.Windows.Forms.Label label1;
 		private System.Windows.Forms.TextBox tbFilter;
 		private System.Windows.Forms.Button bClear;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.MultiSelectTreeview typelist;
+		private CodeImp.DoomBuilder.Controls.MultiSelectTreeview typelist;
 		private System.Windows.Forms.Panel spritepanel;
 		private System.Windows.Forms.Timer updatetimer;
 		private ConfigurablePictureBox spritetex;
diff --git a/Source/Core/Controls/ThingBrowserControl.cs b/Source/Core/Controls/ThingBrowserControl.cs
index 0a969d1bb08da54de5e8fa3ec45f056833f2ae73..fcdc0277a757f3f27c1c38390cf9d168cb066eaa 100644
--- a/Source/Core/Controls/ThingBrowserControl.cs
+++ b/Source/Core/Controls/ThingBrowserControl.cs
@@ -23,7 +23,6 @@ using System.Globalization;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.GZBuilder.Controls;
 
 #endregion
 
diff --git a/Source/Core/Controls/ThingInfoPanel.Designer.cs b/Source/Core/Controls/ThingInfoPanel.Designer.cs
index bdc1168b5edb617e6ad7f843edf631a70cf4bab2..651e11651992155af13a62a36bf71536d6c57415 100644
--- a/Source/Core/Controls/ThingInfoPanel.Designer.cs
+++ b/Source/Core/Controls/ThingInfoPanel.Designer.cs
@@ -34,7 +34,7 @@ namespace CodeImp.DoomBuilder.Controls
 			System.Windows.Forms.Label label1;
 			this.labelaction = new System.Windows.Forms.Label();
 			this.infopanel = new System.Windows.Forms.GroupBox();
-			this.anglecontrol = new CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl();
+			this.anglecontrol = new CodeImp.DoomBuilder.Controls.AngleControlEx();
 			this.classname = new System.Windows.Forms.Label();
 			this.labelclass = new System.Windows.Forms.Label();
 			this.arg5 = new System.Windows.Forms.Label();
@@ -435,7 +435,7 @@ namespace CodeImp.DoomBuilder.Controls
 		private System.Windows.Forms.GroupBox flagsPanel;
 		private System.Windows.Forms.ListView flags;
 		private System.Windows.Forms.Label labelaction;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl anglecontrol;
+		private CodeImp.DoomBuilder.Controls.AngleControlEx anglecontrol;
 		private ConfigurablePictureBox spritetex;
 		private System.Windows.Forms.Label classname;
 		private System.Windows.Forms.Label labelclass;
diff --git a/Source/Core/Data/DataManager.cs b/Source/Core/Data/DataManager.cs
index bf7cb7602b258e8011f31ab7a9360c5616bc4084..32398a05d85cdf106ed3f37fb61ef6f19a64c4bb 100644
--- a/Source/Core/Data/DataManager.cs
+++ b/Source/Core/Data/DataManager.cs
@@ -28,7 +28,6 @@ using System.Threading;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.GZBuilder.Data;
-using CodeImp.DoomBuilder.GZBuilder.GZDoom;
 using CodeImp.DoomBuilder.GZBuilder.MD3;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.IO;
diff --git a/Source/Core/Editing/GridSetup.cs b/Source/Core/Editing/GridSetup.cs
index 977b55abb74b5f1942d132c0fe8d998999a7dcfa..6cb25f280075bfdd0d0b558d4390d43b22f16927 100644
--- a/Source/Core/Editing/GridSetup.cs
+++ b/Source/Core/Editing/GridSetup.cs
@@ -19,7 +19,6 @@
 using System;
 using System.IO;
 using System.Windows.Forms;
-using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.IO;
 using CodeImp.DoomBuilder.Actions;
diff --git a/Source/Core/GZBuilder/Data/BoundingBox.cs b/Source/Core/GZBuilder/Data/BoundingBox.cs
index a53b09ea757806549acaad01b61623a26470e7ad..928cfb96a43e8a2c6ab427cc1795ce62e9bfb707 100644
--- a/Source/Core/GZBuilder/Data/BoundingBox.cs
+++ b/Source/Core/GZBuilder/Data/BoundingBox.cs
@@ -1,6 +1,5 @@
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Rendering;
-using SlimDX;
 
 namespace CodeImp.DoomBuilder.GZBuilder.Data
 {
diff --git a/Source/Core/GZBuilder/Data/LinksCollector.cs b/Source/Core/GZBuilder/Data/LinksCollector.cs
index 99fa789d48517176666931ece7c4c198e7496572..10bca10f963584e6f6fce2bdb1e160555203e229 100644
--- a/Source/Core/GZBuilder/Data/LinksCollector.cs
+++ b/Source/Core/GZBuilder/Data/LinksCollector.cs
@@ -1,7 +1,6 @@
 using System.Collections.Generic;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.VisualModes;
 
diff --git a/Source/Core/GZBuilder/Rendering/SizelessVisualThingCage.cs b/Source/Core/GZBuilder/Rendering/SizelessVisualThingCage.cs
deleted file mode 100644
index 67ac90fed604b476b8a2307b5118c86751124702..0000000000000000000000000000000000000000
--- a/Source/Core/GZBuilder/Rendering/SizelessVisualThingCage.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-/*#region ================== Namespaces
-
-using System;
-using SlimDX.Direct3D9;
-using CodeImp.DoomBuilder.Rendering;
-
-#endregion
-
-namespace CodeImp.DoomBuilder.GZBuilder.Rendering
-{
-	internal sealed class SizelessVisualThingCage : IDisposable, ID3DResource
-	{
-		#region ================== Constants
-
-		private const float RADIUS = 1.0f;
-
-		#endregion
-
-		#region ================== Variables
-
-		private VertexBuffer shape;
-		private bool isdisposed;
-
-		#endregion
-
-		#region ================== Properties
-
-		public VertexBuffer Shape { get { return shape; } }
-
-		#endregion
-
-		#region ================== Constructor / Disposer
-
-		public SizelessVisualThingCage() 
-		{
-			// Create geometry
-			ReloadResource();
-
-			// Register as resource
-			General.Map.Graphics.RegisterResource(this);
-		}
-
-		public void Dispose() 
-		{
-			// Not already disposed?
-			if(!isdisposed)
-			{
-				// Clean up
-				if(shape != null) shape.Dispose();
-				shape = null;
-
-				// Unregister resource
-				General.Map.Graphics.UnregisterResource(this);
-
-				// Done
-				isdisposed = true;
-			}
-		}
-
-		#endregion
-
-		#region ================== Methods
-
-		// This is called resets when the device is reset
-		// (when resized or display adapter was changed)
-		public void ReloadResource()
-		{
-			WorldVertex v0 = new WorldVertex(-RADIUS, -RADIUS, 0f);
-			WorldVertex v1 = new WorldVertex(RADIUS, RADIUS, 0f);
-			WorldVertex v2 = new WorldVertex(RADIUS, -RADIUS, 0f);
-			WorldVertex v3 = new WorldVertex(-RADIUS, RADIUS, 0f);
-			WorldVertex v4 = new WorldVertex(0f, 0f, RADIUS);
-			WorldVertex v5 = new WorldVertex(0f, 0f, -RADIUS);
-
-			WorldVertex[] vs = new[] { v0, v1, v2, v3, v4, v5 };
-
-			shape = new VertexBuffer(General.Map.Graphics.Device, WorldVertex.Stride * vs.Length, Usage.WriteOnly | Usage.Dynamic, VertexFormat.None, Pool.Default);
-			shape.Lock(0, WorldVertex.Stride * vs.Length, LockFlags.None).WriteRange(vs);
-			shape.Unlock();
-		}
-
-		// This is called before a device is reset
-		// (when resized or display adapter was changed)
-		public void UnloadResource() 
-		{
-			// Trash geometry buffer
-			if(shape != null) shape.Dispose();
-			shape = null;
-		}
-
-		#endregion
-	}
-}*/
diff --git a/Source/Core/GZBuilder/Rendering/ThingBoundingBox.cs b/Source/Core/GZBuilder/Rendering/ThingBoundingBox.cs
deleted file mode 100644
index 44693b60fd067a91a6691d906fb205cf5250f180..0000000000000000000000000000000000000000
--- a/Source/Core/GZBuilder/Rendering/ThingBoundingBox.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-/*#region ================== Namespaces
-
-using System;
-using SlimDX.Direct3D9;
-using CodeImp.DoomBuilder.Rendering;
-
-#endregion
-
-namespace CodeImp.DoomBuilder.GZBuilder.Rendering
-{
-	sealed class ThingBoundingBox : IDisposable, ID3DResource
-	{
-
-		#region ================== Variables
-
-		private VertexBuffer cage;
-		private VertexBuffer arrow;
-		private bool isdisposed;
-
-		#endregion
-
-		#region ================== Properties
-
-		public VertexBuffer Cage { get { return cage; } }
-		public VertexBuffer Arrow { get { return arrow; } }
-
-		#endregion
-
-		#region ================== Constructor / Disposer
-
-		public ThingBoundingBox() 
-		{
-			// Create geometry
-			ReloadResource();
-
-			// Register as resource
-			General.Map.Graphics.RegisterResource(this);
-		}
-
-		public void Dispose() 
-		{
-			// Not already disposed?
-			if(!isdisposed)
-			{
-				if(arrow != null) arrow.Dispose();
-				if(cage != null) cage.Dispose();
-
-				// Unregister resource
-				General.Map.Graphics.UnregisterResource(this);
-
-				// Done
-				isdisposed = true;
-			}
-		}
-
-		#endregion
-
-		#region ================== Methods
-
-		// This is called resets when the device is reset
-		// (when resized or display adapter was changed)
-		public void ReloadResource() 
-		{
-			WorldVertex v0 = new WorldVertex(-1.0f, -1.0f, 0.0f);
-			WorldVertex v1 = new WorldVertex(-1.0f, 1.0f, 0.0f);
-			WorldVertex v2 = new WorldVertex(1.0f, 1.0f, 0.0f);
-			WorldVertex v3 = new WorldVertex(1.0f, -1.0f, 0.0f);
-
-			WorldVertex v4 = new WorldVertex(-1.0f, -1.0f, 1.0f);
-			WorldVertex v5 = new WorldVertex(-1.0f, 1.0f, 1.0f);
-			WorldVertex v6 = new WorldVertex(1.0f, 1.0f, 1.0f);
-			WorldVertex v7 = new WorldVertex(1.0f, -1.0f, 1.0f);
-
-			//cage
-			WorldVertex[] cageVerts = new WorldVertex[] { v0, v1,
-														  v1, v2,
-														  v2, v3,
-														  v3, v0,
-														  v4, v5, 
-														  v5, v6,
-														  v6, v7,
-														  v7, v4,
-														  v0, v4,
-														  v1, v5,
-														  v2, v6,
-														  v3, v7 };
-
-			cage = new VertexBuffer(General.Map.Graphics.Device, WorldVertex.Stride * cageVerts.Length, Usage.WriteOnly | Usage.Dynamic, VertexFormat.None, Pool.Default);
-			cage.Lock(0, WorldVertex.Stride * cageVerts.Length, LockFlags.None).WriteRange(cageVerts);
-			cage.Unlock();
-
-			//arrow
-			WorldVertex a0 = new WorldVertex(); //start
-			WorldVertex a1 = new WorldVertex( 0.0f, -1.5f,  0.0f); //end
-			WorldVertex a2 = new WorldVertex( 0.2f, -1.1f,  0.2f);
-			WorldVertex a3 = new WorldVertex(-0.2f, -1.1f,  0.2f);
-			WorldVertex a4 = new WorldVertex( 0.2f, -1.1f, -0.2f);
-			WorldVertex a5 = new WorldVertex(-0.2f, -1.1f, -0.2f);
-
-			WorldVertex[] arrowVerts = new WorldVertex[] {a0, a1,
-														  a1, a2,
-														  a1, a3,
-														  a1, a4,
-														  a1, a5};
-
-			arrow = new VertexBuffer(General.Map.Graphics.Device, WorldVertex.Stride * arrowVerts.Length, Usage.WriteOnly | Usage.Dynamic, VertexFormat.None, Pool.Default);
-			arrow.Lock(0, WorldVertex.Stride * arrowVerts.Length, LockFlags.None).WriteRange(arrowVerts);
-			arrow.Unlock();
-		}
-
-		// This is called before a device is reset
-		// (when resized or display adapter was changed)
-		public void UnloadResource() 
-		{
-			// Trash geometry buffers
-			if(cage != null) cage.Dispose();
-			if(arrow != null) arrow.Dispose();
-			cage = null;
-			arrow = null;
-		}
-
-		#endregion
-	}
-}*/
diff --git a/Source/Core/General/General.cs b/Source/Core/General/General.cs
index 6564d81054e91e734b0948c025f1bccebd4b9513..1fbf1f1aeaabee33223549d979d250ac74e3ab64 100644
--- a/Source/Core/General/General.cs
+++ b/Source/Core/General/General.cs
@@ -2086,7 +2086,7 @@ namespace CodeImp.DoomBuilder
 			try 
 			{
 				// Try handling it in user-friendy way...
-				GZBuilder.Windows.ExceptionDialog dlg = new GZBuilder.Windows.ExceptionDialog(e);
+				ExceptionDialog dlg = new ExceptionDialog(e);
 				dlg.Setup();
 				if(dlg.ShowDialog() == DialogResult.Cancel) Terminate(false);
 			} 
@@ -2113,7 +2113,7 @@ namespace CodeImp.DoomBuilder
 			try
 			{
 				// Try handling it in user-friendy way...
-				GZBuilder.Windows.ExceptionDialog dlg = new GZBuilder.Windows.ExceptionDialog(e);
+				ExceptionDialog dlg = new ExceptionDialog(e);
 				dlg.Setup();
 				if(dlg.ShowDialog() == DialogResult.Cancel) Terminate(false);
 			}
diff --git a/Source/Core/General/Launcher.cs b/Source/Core/General/Launcher.cs
index 80bc594da0b98de96d81f5974ed5daf9f8eef82c..43e2d1e95ed74c8e75785990b787dbb88247b97b 100644
--- a/Source/Core/General/Launcher.cs
+++ b/Source/Core/General/Launcher.cs
@@ -24,7 +24,6 @@ using CodeImp.DoomBuilder.Actions;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.IO;
-using CodeImp.DoomBuilder.VisualModes;
 using CodeImp.DoomBuilder.Windows;
 
 #endregion
diff --git a/Source/Core/General/MapManager.cs b/Source/Core/General/MapManager.cs
index 2bb4faea850683c851369f5962e23c3eb54c3fe5..6150697278a499bf5944e2ea33284fcbc64204eb 100644
--- a/Source/Core/General/MapManager.cs
+++ b/Source/Core/General/MapManager.cs
@@ -29,12 +29,12 @@ using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.GZBuilder.Data; //mxd
-using CodeImp.DoomBuilder.GZBuilder.GZDoom; //mxd
 using CodeImp.DoomBuilder.IO;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.VisualModes;
 using CodeImp.DoomBuilder.Windows;
+using CodeImp.DoomBuilder.ZDoom.Scripting;
 
 #endregion
 
diff --git a/Source/Core/GZBuilder/Geometry/Line3D.cs b/Source/Core/Geometry/Line3D.cs
similarity index 90%
rename from Source/Core/GZBuilder/Geometry/Line3D.cs
rename to Source/Core/Geometry/Line3D.cs
index 3cffa1aa4843a1e6825462c3060b89eaf38d558c..776d14a841bf0796aa8d367a6d83189ead780203 100644
--- a/Source/Core/GZBuilder/Geometry/Line3D.cs
+++ b/Source/Core/Geometry/Line3D.cs
@@ -1,8 +1,7 @@
 using System;
-using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Rendering;
 
-namespace CodeImp.DoomBuilder.GZBuilder.Geometry 
+namespace CodeImp.DoomBuilder.Geometry 
 {
 	public class Line3D 
 	{
diff --git a/Source/Core/Geometry/Tools.cs b/Source/Core/Geometry/Tools.cs
index 6fee304ac4fc872cb79e555476443b4a845d9c94..9a4bf3951c3c5c92efc0fc3fa82e82c4b3118083 100644
--- a/Source/Core/Geometry/Tools.cs
+++ b/Source/Core/Geometry/Tools.cs
@@ -22,8 +22,6 @@ using System.Drawing;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.GZBuilder.Data;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.Types;
diff --git a/Source/Core/IO/WAD.cs b/Source/Core/IO/WAD.cs
index 79c3937daffa241e8139ee264531d0854cdd7b3d..c6c1522b6fc0d3fa0b924417e5a07121fbc75f7d 100644
--- a/Source/Core/IO/WAD.cs
+++ b/Source/Core/IO/WAD.cs
@@ -18,7 +18,6 @@
 
 using System;
 using System.Collections.Generic;
-using System.Security.Cryptography;
 using System.Text;
 using System.IO;
 
diff --git a/Source/Core/Map/MapSet.cs b/Source/Core/Map/MapSet.cs
index d2ddbe617fd02cb6309511ae61e7028baf1eb2a3..fe86c109e95cf01f05c46561e3d288a7eb10376f 100644
--- a/Source/Core/Map/MapSet.cs
+++ b/Source/Core/Map/MapSet.cs
@@ -30,7 +30,6 @@ using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.Types;
 using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.VisualModes;
-using CodeImp.DoomBuilder.Data;
 
 #endregion
 
diff --git a/Source/Core/Plugins/Plug.cs b/Source/Core/Plugins/Plug.cs
index cbffaf5c8196fddbd06443d5b9f027a5f4bd3895..72d5c4c61518925d4ece3a52dcf9e72764e89fd5 100644
--- a/Source/Core/Plugins/Plug.cs
+++ b/Source/Core/Plugins/Plug.cs
@@ -1,7 +1,6 @@
 #region ================== Namespaces
 
 using System;
-using System.Drawing;
 using System.IO;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Editing;
diff --git a/Source/Core/Rendering/D3DDevice.cs b/Source/Core/Rendering/D3DDevice.cs
index 0b3b2c341dc2d1db8bdf7f7a01bb4bb3a3ee15e6..95f9f76373e80227e789ba0c60b12bd2fbb7d095 100644
--- a/Source/Core/Rendering/D3DDevice.cs
+++ b/Source/Core/Rendering/D3DDevice.cs
@@ -21,7 +21,6 @@ using System.Collections.Generic;
 using System.Drawing;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Controls;
-using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Geometry;
 using SlimDX;
 using SlimDX.Direct3D9;
diff --git a/Source/Core/Rendering/IRenderer2D.cs b/Source/Core/Rendering/IRenderer2D.cs
index 551bcd1f5827da08e5b8b1f033f6d73c14e65851..044be3baef23ce7cdfbe42adcfa36ed7bf9eda65 100644
--- a/Source/Core/Rendering/IRenderer2D.cs
+++ b/Source/Core/Rendering/IRenderer2D.cs
@@ -21,7 +21,6 @@ using System.Drawing;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 
 #endregion
 
diff --git a/Source/Core/Rendering/IRenderer3D.cs b/Source/Core/Rendering/IRenderer3D.cs
index 3ac2b2c277fdf622e94a2b2ffd106a43b43f290d..28ea5866a3760dedb89defcb5499520006f46cf3 100644
--- a/Source/Core/Rendering/IRenderer3D.cs
+++ b/Source/Core/Rendering/IRenderer3D.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System.Collections.Generic;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.VisualModes;
diff --git a/Source/Core/Rendering/Renderer.cs b/Source/Core/Rendering/Renderer.cs
index 8ba48c98232aa85b34c278283b9c9aa5e8f478af..9a2f85bbf2310ce8cb7c6d1662e7ad6be9a98ffb 100644
--- a/Source/Core/Rendering/Renderer.cs
+++ b/Source/Core/Rendering/Renderer.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using System.Drawing;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Geometry;
 
diff --git a/Source/Core/Rendering/Renderer2D.cs b/Source/Core/Rendering/Renderer2D.cs
index 41d6385a8fb538b2e4697b77f5f0d5926eb7a072..c7695f04a750ca28482053d3f452b8faf61a72f7 100644
--- a/Source/Core/Rendering/Renderer2D.cs
+++ b/Source/Core/Rendering/Renderer2D.cs
@@ -26,7 +26,6 @@ using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.GZBuilder.Data; //mxd
-using CodeImp.DoomBuilder.GZBuilder.Geometry; //mxd
 using CodeImp.DoomBuilder.Config; //mxd
 
 #endregion
diff --git a/Source/Core/Rendering/Renderer3D.cs b/Source/Core/Rendering/Renderer3D.cs
index be2a15074761173ee52d43844edbe155330ca90c..81d716ffaad81e70f2bdf8478529fbd142ad1566 100644
--- a/Source/Core/Rendering/Renderer3D.cs
+++ b/Source/Core/Rendering/Renderer3D.cs
@@ -23,9 +23,7 @@ using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.GZBuilder.Data;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.GZBuilder.MD3;
-using CodeImp.DoomBuilder.GZBuilder.Rendering;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.VisualModes;
 using SlimDX;
diff --git a/Source/Core/Rendering/ShaderManager.cs b/Source/Core/Rendering/ShaderManager.cs
index 6f55b08df24dd80831c7811081328288df53209e..e0efb40d50109c8c7f71fe87c0edf77a262997d8 100644
--- a/Source/Core/Rendering/ShaderManager.cs
+++ b/Source/Core/Rendering/ShaderManager.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using SlimDX.Direct3D9;
 
 #endregion
 
diff --git a/Source/Core/Rendering/SurfaceManager.cs b/Source/Core/Rendering/SurfaceManager.cs
index 6be14c33a8e247cbe659104a6c0274312bd14557..1e82b5eab28f59e346a685a9d52197546bba159d 100644
--- a/Source/Core/Rendering/SurfaceManager.cs
+++ b/Source/Core/Rendering/SurfaceManager.cs
@@ -18,13 +18,12 @@
 
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Drawing;
-using CodeImp.DoomBuilder.IO;
+using System.IO;
+using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Map;
-using SlimDX.Direct3D9;
 using SlimDX;
-using CodeImp.DoomBuilder.Data;
+using SlimDX.Direct3D9;
 
 #endregion
 
diff --git a/Source/Core/GZBuilder/Rendering/VisualVertexHandle.cs b/Source/Core/Rendering/VisualVertexHandle.cs
similarity index 93%
rename from Source/Core/GZBuilder/Rendering/VisualVertexHandle.cs
rename to Source/Core/Rendering/VisualVertexHandle.cs
index 0fb06ef0d73e97ae729e5c807fb00f4a3fc6a571..ae10280ac2a440676e5844969c3c4f8a22aa63e5 100644
--- a/Source/Core/GZBuilder/Rendering/VisualVertexHandle.cs
+++ b/Source/Core/Rendering/VisualVertexHandle.cs
@@ -3,11 +3,10 @@
 using System;
 using CodeImp.DoomBuilder.VisualModes;
 using SlimDX.Direct3D9;
-using CodeImp.DoomBuilder.Rendering;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Rendering
+namespace CodeImp.DoomBuilder.Rendering
 {
 	internal sealed class VisualVertexHandle : IDisposable, ID3DResource
 	{
diff --git a/Source/Core/GZBuilder/Windows/ExceptionDialog.cs b/Source/Core/Windows/ExceptionDialog.cs
similarity index 96%
rename from Source/Core/GZBuilder/Windows/ExceptionDialog.cs
rename to Source/Core/Windows/ExceptionDialog.cs
index 283e8e67e87041bb633ffdb9c2627673febaeef3..c87368908865164c98c1ac1e3f1ded0937f201ff 100644
--- a/Source/Core/GZBuilder/Windows/ExceptionDialog.cs
+++ b/Source/Core/Windows/ExceptionDialog.cs
@@ -8,7 +8,7 @@ using System.Threading;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Windows
+namespace CodeImp.DoomBuilder.Windows
 {
 	public partial class ExceptionDialog : Form
 	{
diff --git a/Source/Core/GZBuilder/Windows/ExceptionDialog.designer.cs b/Source/Core/Windows/ExceptionDialog.designer.cs
similarity index 97%
rename from Source/Core/GZBuilder/Windows/ExceptionDialog.designer.cs
rename to Source/Core/Windows/ExceptionDialog.designer.cs
index 02b6e61db97e17a33bb48a2bd6412e4d5a36f203..96dc6f8af3d388c93c32c441f9f710963d267876 100644
--- a/Source/Core/GZBuilder/Windows/ExceptionDialog.designer.cs
+++ b/Source/Core/Windows/ExceptionDialog.designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Windows
+namespace CodeImp.DoomBuilder.Windows
 {
 	partial class ExceptionDialog
 	{
diff --git a/Source/Core/GZBuilder/Windows/ExceptionDialog.resx b/Source/Core/Windows/ExceptionDialog.resx
similarity index 100%
rename from Source/Core/GZBuilder/Windows/ExceptionDialog.resx
rename to Source/Core/Windows/ExceptionDialog.resx
diff --git a/Source/Core/Windows/LinedefEditForm.Designer.cs b/Source/Core/Windows/LinedefEditForm.Designer.cs
index 4bbff0ca6039933ce441bc1f537db3b86820b255..a90756d1a55ec907dff45edd57929b213926e587 100644
--- a/Source/Core/Windows/LinedefEditForm.Designer.cs
+++ b/Source/Core/Windows/LinedefEditForm.Designer.cs
@@ -53,7 +53,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.flagsgroup = new System.Windows.Forms.GroupBox();
 			this.flags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
 			this.idgroup = new System.Windows.Forms.GroupBox();
-			this.tagSelector = new CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector();
+			this.tagSelector = new CodeImp.DoomBuilder.Controls.TagSelector();
 			this.frontside = new System.Windows.Forms.CheckBox();
 			this.frontgroup = new System.Windows.Forms.GroupBox();
 			this.replaceunusedfronttextures = new System.Windows.Forms.CheckBox();
@@ -61,7 +61,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.frontlow = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
 			this.frontmid = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
 			this.fronthigh = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
-			this.frontTextureOffset = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl();
+			this.frontTextureOffset = new CodeImp.DoomBuilder.Controls.PairedIntControl();
 			this.backside = new System.Windows.Forms.CheckBox();
 			this.backgroup = new System.Windows.Forms.GroupBox();
 			this.replaceunusedbacktextures = new System.Windows.Forms.CheckBox();
@@ -69,7 +69,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.backlow = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
 			this.backmid = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
 			this.backhigh = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
-			this.backTextureOffset = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl();
+			this.backTextureOffset = new CodeImp.DoomBuilder.Controls.PairedIntControl();
 			this.panel = new System.Windows.Forms.Panel();
 			this.tooltip = new System.Windows.Forms.ToolTip(this.components);
 			label2 = new System.Windows.Forms.Label();
@@ -650,9 +650,9 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.GroupBox idgroup;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox frontsector;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backsector;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl frontTextureOffset;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl backTextureOffset;
+		private CodeImp.DoomBuilder.Controls.TagSelector tagSelector;
+		private CodeImp.DoomBuilder.Controls.PairedIntControl frontTextureOffset;
+		private CodeImp.DoomBuilder.Controls.PairedIntControl backTextureOffset;
 		private System.Windows.Forms.Panel panel;
 		private CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton actionhelp;
 		private System.Windows.Forms.ToolTip tooltip;
diff --git a/Source/Core/Windows/LinedefEditFormUDMF.Designer.cs b/Source/Core/Windows/LinedefEditFormUDMF.Designer.cs
index 0101a2b0463c0a7f9c1df9003347cc78afc1e400..946594ed87c6bc2b7fa6b07270cbd316f9fa462e 100644
--- a/Source/Core/Windows/LinedefEditFormUDMF.Designer.cs
+++ b/Source/Core/Windows/LinedefEditFormUDMF.Designer.cs
@@ -56,7 +56,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.activationGroup = new System.Windows.Forms.GroupBox();
 			this.missingactivation = new System.Windows.Forms.PictureBox();
 			this.idgroup = new System.Windows.Forms.GroupBox();
-			this.tagsselector = new CodeImp.DoomBuilder.GZBuilder.Controls.TagsSelector();
+			this.tagsselector = new CodeImp.DoomBuilder.Controls.TagsSelector();
 			this.tabfront = new System.Windows.Forms.TabPage();
 			this.frontside = new System.Windows.Forms.CheckBox();
 			this.frontgroup = new System.Windows.Forms.GroupBox();
@@ -67,18 +67,18 @@ namespace CodeImp.DoomBuilder.Windows
 			this.labelFrontScaleBottom = new System.Windows.Forms.Label();
 			this.labelFrontScaleMid = new System.Windows.Forms.Label();
 			this.labelFrontScaleTop = new System.Windows.Forms.Label();
-			this.pfcFrontScaleTop = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.pfcFrontScaleBottom = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.pfcFrontScaleMid = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
+			this.pfcFrontScaleTop = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.pfcFrontScaleBottom = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.pfcFrontScaleMid = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
 			this.groupBox6 = new System.Windows.Forms.GroupBox();
 			this.labelFrontTextureOffset = new System.Windows.Forms.Label();
 			this.labelFrontOffsetBottom = new System.Windows.Forms.Label();
-			this.frontTextureOffset = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl();
+			this.frontTextureOffset = new CodeImp.DoomBuilder.Controls.PairedIntControl();
 			this.labelFrontOffsetMid = new System.Windows.Forms.Label();
-			this.pfcFrontOffsetTop = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
+			this.pfcFrontOffsetTop = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
 			this.labelFrontOffsetTop = new System.Windows.Forms.Label();
-			this.pfcFrontOffsetMid = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.pfcFrontOffsetBottom = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
+			this.pfcFrontOffsetMid = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.pfcFrontOffsetBottom = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
 			this.groupBox5 = new System.Windows.Forms.GroupBox();
 			this.resetfrontlight = new System.Windows.Forms.Button();
 			this.frontsector = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
@@ -105,18 +105,18 @@ namespace CodeImp.DoomBuilder.Windows
 			this.labelBackScaleBottom = new System.Windows.Forms.Label();
 			this.labelBackScaleMid = new System.Windows.Forms.Label();
 			this.labelBackScaleTop = new System.Windows.Forms.Label();
-			this.pfcBackScaleTop = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.pfcBackScaleBottom = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.pfcBackScaleMid = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
+			this.pfcBackScaleTop = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.pfcBackScaleBottom = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.pfcBackScaleMid = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
 			this.groupBox1 = new System.Windows.Forms.GroupBox();
 			this.labelBackTextureOffset = new System.Windows.Forms.Label();
 			this.labelBackOffsetBottom = new System.Windows.Forms.Label();
 			this.labelBackOffsetMid = new System.Windows.Forms.Label();
 			this.labelBackOffsetTop = new System.Windows.Forms.Label();
-			this.pfcBackOffsetTop = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.pfcBackOffsetMid = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.pfcBackOffsetBottom = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.backTextureOffset = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl();
+			this.pfcBackOffsetTop = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.pfcBackOffsetMid = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.pfcBackOffsetBottom = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.backTextureOffset = new CodeImp.DoomBuilder.Controls.PairedIntControl();
 			this.backlow = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
 			this.backmid = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
 			this.backhigh = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
@@ -1486,18 +1486,18 @@ namespace CodeImp.DoomBuilder.Windows
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backsector;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox lightFront;
 		private System.Windows.Forms.CheckBox cbLightAbsoluteFront;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcFrontOffsetTop;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcFrontOffsetBottom;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcFrontOffsetMid;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcFrontScaleBottom;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcFrontScaleMid;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcFrontScaleTop;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcBackScaleBottom;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcBackScaleMid;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcBackScaleTop;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcBackOffsetBottom;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcBackOffsetMid;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl pfcBackOffsetTop;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcFrontOffsetTop;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcFrontOffsetBottom;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcFrontOffsetMid;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcFrontScaleBottom;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcFrontScaleMid;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcFrontScaleTop;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcBackScaleBottom;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcBackScaleMid;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcBackScaleTop;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcBackOffsetBottom;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcBackOffsetMid;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl pfcBackOffsetTop;
 		private System.Windows.Forms.GroupBox groupsettings;
 		private System.Windows.Forms.ComboBox renderStyle;
 		private System.Windows.Forms.Label labelLightFront;
@@ -1505,8 +1505,8 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.Label labelLightBack;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox lightBack;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox alpha;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl frontTextureOffset;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedIntControl backTextureOffset;
+		private CodeImp.DoomBuilder.Controls.PairedIntControl frontTextureOffset;
+		private CodeImp.DoomBuilder.Controls.PairedIntControl backTextureOffset;
 		private CodeImp.DoomBuilder.Controls.CheckboxArrayControl flagsFront;
 		private CodeImp.DoomBuilder.Controls.CheckboxArrayControl flagsBack;
 		private System.Windows.Forms.GroupBox activationGroup;
@@ -1543,7 +1543,7 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.TabPage tabcomment;
 		private CodeImp.DoomBuilder.Controls.CommentEditor commenteditor;
 		private CodeImp.DoomBuilder.Controls.ArgumentsControl argscontrol;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.TagsSelector tagsselector;
+		private CodeImp.DoomBuilder.Controls.TagsSelector tagsselector;
 		private System.Windows.Forms.Button resetfrontlight;
 		private System.Windows.Forms.Button resetbacklight;
 		private System.Windows.Forms.CheckBox replaceunusedfronttextures;
diff --git a/Source/Core/Windows/LinedefEditFormUDMF.cs b/Source/Core/Windows/LinedefEditFormUDMF.cs
index 530919e2457e650b9e256a2a905f3417f75a93b0..d7fdd6141944d68bef6e005cfe5f73da36afb7d2 100644
--- a/Source/Core/Windows/LinedefEditFormUDMF.cs
+++ b/Source/Core/Windows/LinedefEditFormUDMF.cs
@@ -21,7 +21,7 @@ using System.Collections.Generic;
 using System.Drawing;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.GZBuilder.Controls;
+using CodeImp.DoomBuilder.Controls;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Types;
 
diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs
index d799f1a6b9fcea382d50605845a5b986ec2163e3..a1949e3be93aa2baa3a42249b5a75e2f9d565987 100644
--- a/Source/Core/Windows/MainForm.cs
+++ b/Source/Core/Windows/MainForm.cs
@@ -35,7 +35,6 @@ using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.GZBuilder.Data;
 using CodeImp.DoomBuilder.Geometry;
-using CodeImp.DoomBuilder.GZBuilder.Windows;
 using CodeImp.DoomBuilder.IO;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Plugins;
diff --git a/Source/Core/Windows/SectorEditForm.Designer.cs b/Source/Core/Windows/SectorEditForm.Designer.cs
index 92583493ccdaa5f5c24acb043af582d8f947375d..1393681cdc12b233912f65d8980d8c89be3e48f6 100644
--- a/Source/Core/Windows/SectorEditForm.Designer.cs
+++ b/Source/Core/Windows/SectorEditForm.Designer.cs
@@ -42,7 +42,7 @@ namespace CodeImp.DoomBuilder.Windows
 			System.Windows.Forms.Label label4;
 			this.browseeffect = new System.Windows.Forms.Button();
 			this.effect = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
-			this.tagSelector = new CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector();
+			this.tagSelector = new CodeImp.DoomBuilder.Controls.TagSelector();
 			this.heightoffset = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.brightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.ceilingheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
@@ -446,7 +446,7 @@ namespace CodeImp.DoomBuilder.Windows
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox ceilingheight;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox floorheight;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox brightness;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
+		private CodeImp.DoomBuilder.Controls.TagSelector tagSelector;
 		private System.Windows.Forms.Panel panel1;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox heightoffset;
 		private System.Windows.Forms.ToolTip tooltip;
diff --git a/Source/Core/Windows/SectorEditFormUDMF.Designer.cs b/Source/Core/Windows/SectorEditFormUDMF.Designer.cs
index 012ffcda6512a315d0ef62a5a849f03f860476c9..30c533e2b492aaba706e9f3c6e098bab2cee5829 100644
--- a/Source/Core/Windows/SectorEditFormUDMF.Designer.cs
+++ b/Source/Core/Windows/SectorEditFormUDMF.Designer.cs
@@ -44,11 +44,11 @@
 			System.Windows.Forms.Label label16;
 			System.Windows.Forms.Label label18;
 			System.Windows.Forms.Label label19;
-			this.tagsselector = new CodeImp.DoomBuilder.GZBuilder.Controls.TagsSelector();
+			this.tagsselector = new CodeImp.DoomBuilder.Controls.TagsSelector();
 			this.soundsequence = new System.Windows.Forms.ComboBox();
 			this.resetsoundsequence = new System.Windows.Forms.Button();
-			this.fadeColor = new CodeImp.DoomBuilder.GZBuilder.Controls.ColorFieldsControl();
-			this.lightColor = new CodeImp.DoomBuilder.GZBuilder.Controls.ColorFieldsControl();
+			this.fadeColor = new CodeImp.DoomBuilder.Controls.ColorFieldsControl();
+			this.lightColor = new CodeImp.DoomBuilder.Controls.ColorFieldsControl();
 			this.brightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.desaturation = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.gravity = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
@@ -78,7 +78,7 @@
 			this.labelFloorOffsets = new System.Windows.Forms.Label();
 			this.labelFloorScale = new System.Windows.Forms.Label();
 			this.cbUseFloorLineAngles = new System.Windows.Forms.CheckBox();
-			this.floorAngleControl = new CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl();
+			this.floorAngleControl = new CodeImp.DoomBuilder.Controls.AngleControlEx();
 			this.labelfloorrenderstyle = new System.Windows.Forms.Label();
 			this.label10 = new System.Windows.Forms.Label();
 			this.floorAlpha = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
@@ -88,8 +88,8 @@
 			this.label12 = new System.Windows.Forms.Label();
 			this.floorBrightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.floorRenderStyle = new System.Windows.Forms.ComboBox();
-			this.floorScale = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.floorOffsets = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
+			this.floorScale = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.floorOffsets = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
 			this.floortex = new CodeImp.DoomBuilder.Controls.FlatSelectorControl();
 			this.groupBox1 = new System.Windows.Forms.GroupBox();
 			this.resetceilterrain = new System.Windows.Forms.Button();
@@ -99,7 +99,7 @@
 			this.labelCeilOffsets = new System.Windows.Forms.Label();
 			this.labelCeilScale = new System.Windows.Forms.Label();
 			this.cbUseCeilLineAngles = new System.Windows.Forms.CheckBox();
-			this.ceilAngleControl = new CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl();
+			this.ceilAngleControl = new CodeImp.DoomBuilder.Controls.AngleControlEx();
 			this.labelceilrenderstyle = new System.Windows.Forms.Label();
 			this.label4 = new System.Windows.Forms.Label();
 			this.ceilAlpha = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
@@ -109,8 +109,8 @@
 			this.labelLightFront = new System.Windows.Forms.Label();
 			this.ceilBrightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.ceilRenderStyle = new System.Windows.Forms.ComboBox();
-			this.ceilScale = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
-			this.ceilOffsets = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl();
+			this.ceilScale = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
+			this.ceilOffsets = new CodeImp.DoomBuilder.Controls.PairedFieldsControl();
 			this.ceilingtex = new CodeImp.DoomBuilder.Controls.FlatSelectorControl();
 			this.tabslopes = new System.Windows.Forms.TabPage();
 			this.groupBox5 = new System.Windows.Forms.GroupBox();
@@ -1452,9 +1452,9 @@
 		private System.Windows.Forms.Button apply;
 		private System.Windows.Forms.TabPage tabSurfaces;
 		private System.Windows.Forms.GroupBox groupBox1;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl ceilOffsets;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl ceilOffsets;
 		private CodeImp.DoomBuilder.Controls.FlatSelectorControl ceilingtex;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl ceilScale;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl ceilScale;
 		private System.Windows.Forms.ComboBox ceilRenderStyle;
 		private System.Windows.Forms.Label label4;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox ceilAlpha;
@@ -1474,16 +1474,16 @@
 		private System.Windows.Forms.Label label12;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox floorBrightness;
 		private System.Windows.Forms.ComboBox floorRenderStyle;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl floorScale;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.PairedFieldsControl floorOffsets;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl floorScale;
+		private CodeImp.DoomBuilder.Controls.PairedFieldsControl floorOffsets;
 		private CodeImp.DoomBuilder.Controls.FlatSelectorControl floortex;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl floorAngleControl;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl ceilAngleControl;
+		private CodeImp.DoomBuilder.Controls.AngleControlEx floorAngleControl;
+		private CodeImp.DoomBuilder.Controls.AngleControlEx ceilAngleControl;
 		private System.Windows.Forms.GroupBox groupBox3;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox gravity;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox desaturation;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.ColorFieldsControl fadeColor;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.ColorFieldsControl lightColor;
+		private CodeImp.DoomBuilder.Controls.ColorFieldsControl fadeColor;
+		private CodeImp.DoomBuilder.Controls.ColorFieldsControl lightColor;
 		private CodeImp.DoomBuilder.Controls.CheckboxArrayControl flags;
 		private System.Windows.Forms.CheckBox cbUseFloorLineAngles;
 		private System.Windows.Forms.CheckBox cbUseCeilLineAngles;
@@ -1502,7 +1502,7 @@
 		private System.Windows.Forms.ComboBox soundsequence;
 		private System.Windows.Forms.TabPage tabcomment;
 		private CodeImp.DoomBuilder.Controls.CommentEditor commenteditor;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.TagsSelector tagsselector;
+		private CodeImp.DoomBuilder.Controls.TagsSelector tagsselector;
 		private System.Windows.Forms.Button resetfloorlight;
 		private System.Windows.Forms.Button resetceillight;
 		private System.Windows.Forms.Label label3;
diff --git a/Source/Core/Windows/SectorEditFormUDMF.cs b/Source/Core/Windows/SectorEditFormUDMF.cs
index c0053497affaeb529e78cca1949f4569d61e81e6..621823253a31f01fa7e6febca0ad56c33ba96a96 100644
--- a/Source/Core/Windows/SectorEditFormUDMF.cs
+++ b/Source/Core/Windows/SectorEditFormUDMF.cs
@@ -400,12 +400,12 @@ namespace CodeImp.DoomBuilder.Windows
 				if(s.Fields.GetValue("rotationceiling", 0.0f).ToString() != ceilRotation.Text) 
 				{
 					ceilRotation.Text = "";
-					ceilAngleControl.Angle = GZBuilder.Controls.AngleControl.NO_ANGLE;
+					ceilAngleControl.Angle = AngleControlEx.NO_ANGLE;
 				}
 				if(s.Fields.GetValue("rotationfloor", 0.0f).ToString() != floorRotation.Text)
 				{
 					floorRotation.Text = "";
-					floorAngleControl.Angle = GZBuilder.Controls.AngleControl.NO_ANGLE;
+					floorAngleControl.Angle = AngleControlEx.NO_ANGLE;
 				}
 
 				//Texture brightness
@@ -1039,7 +1039,7 @@ namespace CodeImp.DoomBuilder.Windows
 			//restore values
 			if(string.IsNullOrEmpty(floorRotation.Text))
 			{
-				floorAngleControl.Angle = GZBuilder.Controls.AngleControl.NO_ANGLE;
+				floorAngleControl.Angle = AngleControlEx.NO_ANGLE;
 				
 				foreach(Sector s in sectors) 
 				{
@@ -1070,7 +1070,7 @@ namespace CodeImp.DoomBuilder.Windows
 			//restore values
 			if(string.IsNullOrEmpty(ceilRotation.Text))
 			{
-				ceilAngleControl.Angle = GZBuilder.Controls.AngleControl.NO_ANGLE;
+				ceilAngleControl.Angle = AngleControlEx.NO_ANGLE;
 				
 				foreach(Sector s in sectors) 
 				{
diff --git a/Source/Core/GZBuilder/Windows/TagStatisticsForm.Designer.cs b/Source/Core/Windows/TagStatisticsForm.Designer.cs
similarity index 97%
rename from Source/Core/GZBuilder/Windows/TagStatisticsForm.Designer.cs
rename to Source/Core/Windows/TagStatisticsForm.Designer.cs
index 27d344880035066cc3dbcf26bdfd214bf9972e41..2da485748eda48ddda5cbbed8c9f790475ca792d 100644
--- a/Source/Core/GZBuilder/Windows/TagStatisticsForm.Designer.cs
+++ b/Source/Core/Windows/TagStatisticsForm.Designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Windows
+namespace CodeImp.DoomBuilder.Windows
 {
 	partial class TagStatisticsForm
 	{
diff --git a/Source/Core/GZBuilder/Windows/TagStatisticsForm.cs b/Source/Core/Windows/TagStatisticsForm.cs
similarity index 95%
rename from Source/Core/GZBuilder/Windows/TagStatisticsForm.cs
rename to Source/Core/Windows/TagStatisticsForm.cs
index 7aebf389854fc70f6dbd71c1ea9a0f62a5ed7f85..92b709fd0fbe1cab112158f339bb9bb28bddcb2a 100644
--- a/Source/Core/GZBuilder/Windows/TagStatisticsForm.cs
+++ b/Source/Core/Windows/TagStatisticsForm.cs
@@ -8,11 +8,10 @@ using System.Windows.Forms;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Editing;
-using CodeImp.DoomBuilder.Windows;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.Windows
+namespace CodeImp.DoomBuilder.Windows
 {
 	public partial class TagStatisticsForm : DelayedForm
 	{
diff --git a/Source/Core/GZBuilder/Windows/TagStatisticsForm.resx b/Source/Core/Windows/TagStatisticsForm.resx
similarity index 100%
rename from Source/Core/GZBuilder/Windows/TagStatisticsForm.resx
rename to Source/Core/Windows/TagStatisticsForm.resx
diff --git a/Source/Core/Windows/TextureBrowserForm.Designer.cs b/Source/Core/Windows/TextureBrowserForm.Designer.cs
index ca80b4f900bd575f6213eb66cc8bdd3199483534..45be9a6638453831877de540755366ce88e636e9 100644
--- a/Source/Core/Windows/TextureBrowserForm.Designer.cs
+++ b/Source/Core/Windows/TextureBrowserForm.Designer.cs
@@ -33,7 +33,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.cancel = new System.Windows.Forms.Button();
 			this.apply = new System.Windows.Forms.Button();
 			this.smallimages = new System.Windows.Forms.ImageList(this.components);
-			this.tvTextureSets = new CodeImp.DoomBuilder.GZBuilder.Controls.MultiSelectTreeview();
+			this.tvTextureSets = new CodeImp.DoomBuilder.Controls.MultiSelectTreeview();
 			this.browser = new CodeImp.DoomBuilder.Controls.ImageBrowserControl();
 			this.panel = new System.Windows.Forms.Panel();
 			this.splitter = new CodeImp.DoomBuilder.Controls.CollapsibleSplitContainer();
@@ -96,7 +96,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.tvTextureSets.Name = "tvTextureSets";
 			this.tvTextureSets.SelectedImageIndex = 0;
 			this.tvTextureSets.SelectionBackColor = System.Drawing.SystemColors.Highlight;
-			this.tvTextureSets.SelectionMode = CodeImp.DoomBuilder.GZBuilder.Controls.TreeViewSelectionMode.SingleSelect;
+			this.tvTextureSets.SelectionMode = CodeImp.DoomBuilder.Controls.TreeViewSelectionMode.SingleSelect;
 			this.tvTextureSets.Size = new System.Drawing.Size(198, 402);
 			this.tvTextureSets.TabIndex = 4;
 			this.tvTextureSets.TabStop = false;
@@ -188,7 +188,7 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.Button cancel;
 		private System.Windows.Forms.Button apply;
 		private System.Windows.Forms.ImageList smallimages;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.MultiSelectTreeview tvTextureSets;
+		private CodeImp.DoomBuilder.Controls.MultiSelectTreeview tvTextureSets;
 		private System.Windows.Forms.Panel panel;
 		private CodeImp.DoomBuilder.Controls.CollapsibleSplitContainer splitter;
 	}
diff --git a/Source/Core/Windows/ThingEditForm.Designer.cs b/Source/Core/Windows/ThingEditForm.Designer.cs
index 72ab8459d61ee6e47e97c7b2901901de8dc2b8eb..f05704a8b6110dfd7fdba6ddd61f6ffccfb0c00c 100644
--- a/Source/Core/Windows/ThingEditForm.Designer.cs
+++ b/Source/Core/Windows/ThingEditForm.Designer.cs
@@ -40,7 +40,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.zlabel = new System.Windows.Forms.Label();
 			this.typegroup = new System.Windows.Forms.GroupBox();
 			this.thingtype = new CodeImp.DoomBuilder.Controls.ThingBrowserControl();
-			this.anglecontrol = new CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl();
+			this.anglecontrol = new CodeImp.DoomBuilder.Controls.AngleControlEx();
 			this.cbRandomAngle = new System.Windows.Forms.CheckBox();
 			this.angle = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.groupBox4 = new System.Windows.Forms.GroupBox();
@@ -53,7 +53,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.action = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
 			this.browseaction = new System.Windows.Forms.Button();
 			this.idgroup = new System.Windows.Forms.GroupBox();
-			this.tagSelector = new CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector();
+			this.tagSelector = new CodeImp.DoomBuilder.Controls.TagSelector();
 			this.cancel = new System.Windows.Forms.Button();
 			this.apply = new System.Windows.Forms.Button();
 			this.hint = new System.Windows.Forms.PictureBox();
@@ -498,8 +498,8 @@ namespace CodeImp.DoomBuilder.Windows
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox posX;
 		private System.Windows.Forms.CheckBox cbAbsoluteHeight;
 		private System.Windows.Forms.CheckBox cbRandomAngle;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl anglecontrol;
+		private CodeImp.DoomBuilder.Controls.TagSelector tagSelector;
+		private CodeImp.DoomBuilder.Controls.AngleControlEx anglecontrol;
 		private System.Windows.Forms.PictureBox hint;
 		private System.Windows.Forms.Label hintlabel;
 		private System.Windows.Forms.PictureBox missingflags;
diff --git a/Source/Core/Windows/ThingEditForm.cs b/Source/Core/Windows/ThingEditForm.cs
index 4ead8c5cf8bda68684140cd168c0954520b73b44..0d33ded8d85b9cb3e069eaf4a5a13bd679dd7679 100644
--- a/Source/Core/Windows/ThingEditForm.cs
+++ b/Source/Core/Windows/ThingEditForm.cs
@@ -21,6 +21,7 @@ using System.Collections.Generic;
 using System.Drawing;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Controls;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Types;
@@ -313,7 +314,7 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 			if(preventchanges) return;
 			preventchanges = true;
-			anglecontrol.Angle = angle.GetResult(GZBuilder.Controls.AngleControl.NO_ANGLE);
+			anglecontrol.Angle = angle.GetResult(AngleControlEx.NO_ANGLE);
 			preventchanges = false;
 			if(!preventmapchange) ApplyAngleChange(); //mxd
 		}
diff --git a/Source/Core/Windows/ThingEditFormUDMF.Designer.cs b/Source/Core/Windows/ThingEditFormUDMF.Designer.cs
index 1a976d878e12c31a5d5e89d2ab3b83607fd9ca36..4aee9873d5a8d8c1f8913b4890b5aa6762dd3b4b 100644
--- a/Source/Core/Windows/ThingEditFormUDMF.Designer.cs
+++ b/Source/Core/Windows/ThingEditFormUDMF.Designer.cs
@@ -41,7 +41,7 @@
 			this.labelpitch = new System.Windows.Forms.Label();
 			this.angle = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.labelAngle = new System.Windows.Forms.Label();
-			this.anglecontrol = new CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl();
+			this.anglecontrol = new CodeImp.DoomBuilder.Controls.AngleControlEx();
 			this.labelGravity = new System.Windows.Forms.Label();
 			this.label7 = new System.Windows.Forms.Label();
 			this.tabs = new System.Windows.Forms.TabControl();
@@ -50,9 +50,9 @@
 			this.missingflags = new System.Windows.Forms.PictureBox();
 			this.flags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
 			this.grouproll = new System.Windows.Forms.GroupBox();
-			this.rollControl = new CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl();
+			this.rollControl = new CodeImp.DoomBuilder.Controls.AngleControlEx();
 			this.grouppitch = new System.Windows.Forms.GroupBox();
-			this.pitchControl = new CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl();
+			this.pitchControl = new CodeImp.DoomBuilder.Controls.AngleControlEx();
 			this.groupangle = new System.Windows.Forms.GroupBox();
 			this.groupBox4 = new System.Windows.Forms.GroupBox();
 			this.cbAbsoluteHeight = new System.Windows.Forms.CheckBox();
@@ -75,8 +75,8 @@
 			this.gravity = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.grouprendering = new System.Windows.Forms.GroupBox();
 			this.labelScale = new System.Windows.Forms.Label();
-			this.scale = new CodeImp.DoomBuilder.GZBuilder.Controls.PairedFloatControl();
-			this.color = new CodeImp.DoomBuilder.GZBuilder.Controls.ColorFieldsControl();
+			this.scale = new CodeImp.DoomBuilder.Controls.PairedFloatControl();
+			this.color = new CodeImp.DoomBuilder.Controls.ColorFieldsControl();
 			this.alpha = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
 			this.label8 = new System.Windows.Forms.Label();
 			this.renderStyle = new System.Windows.Forms.ComboBox();
@@ -87,7 +87,7 @@
 			this.action = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
 			this.browseaction = new System.Windows.Forms.Button();
 			this.grouptag = new System.Windows.Forms.GroupBox();
-			this.tagSelector = new CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector();
+			this.tagSelector = new CodeImp.DoomBuilder.Controls.TagSelector();
 			this.tabcomment = new System.Windows.Forms.TabPage();
 			this.commenteditor = new CodeImp.DoomBuilder.Controls.CommentEditor();
 			this.tabcustom = new System.Windows.Forms.TabPage();
@@ -1043,9 +1043,9 @@
 		private CodeImp.DoomBuilder.Controls.ThingBrowserControl thingtype;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox angle;
 		private System.Windows.Forms.Label labelAngle;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector tagSelector;
+		private CodeImp.DoomBuilder.Controls.TagSelector tagSelector;
 		private System.Windows.Forms.Label labelGravity;
-		private CodeImp.DoomBuilder.GZBuilder.Controls.AngleControl anglecontrol;
+		private CodeImp.DoomBuilder.Controls.AngleControlEx anglecontrol;
 		private System.Windows.Forms.PictureBox hint;
 		private System.Windows.Forms.Label hintlabel;
         private System.Windows.Forms.GroupBox groupBox1;
@@ -1074,17 +1074,17 @@
         private System.Windows.Forms.Label label10;
         private Controls.ButtonsNumericTextbox score;
         private System.Windows.Forms.Label label9;
-		private GZBuilder.Controls.ColorFieldsControl color;
+		private CodeImp.DoomBuilder.Controls.ColorFieldsControl color;
         private System.Windows.Forms.GroupBox settingsgroup;
         private Controls.CheckboxArrayControl flags;
         private Controls.ButtonsNumericTextbox conversationID;
         private System.Windows.Forms.Label labelID;
         private System.Windows.Forms.GroupBox grouproll;
-        private GZBuilder.Controls.AngleControl rollControl;
+        private CodeImp.DoomBuilder.Controls.AngleControlEx rollControl;
         private System.Windows.Forms.GroupBox grouppitch;
-        private GZBuilder.Controls.AngleControl pitchControl;
+        private CodeImp.DoomBuilder.Controls.AngleControlEx pitchControl;
         private System.Windows.Forms.GroupBox groupangle;
-        private GZBuilder.Controls.PairedFloatControl scale;
+        private CodeImp.DoomBuilder.Controls.PairedFloatControl scale;
 		private System.Windows.Forms.PictureBox missingflags;
 		private System.Windows.Forms.ToolTip tooltip;
 		private CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton actionhelp;
diff --git a/Source/Core/Windows/ThingEditFormUDMF.cs b/Source/Core/Windows/ThingEditFormUDMF.cs
index 9ce6b051b62c15f2863c811c0baebd2d3db207b5..68198a1c4062aace5fafe4e489d56357c74bef92 100644
--- a/Source/Core/Windows/ThingEditFormUDMF.cs
+++ b/Source/Core/Windows/ThingEditFormUDMF.cs
@@ -21,6 +21,7 @@ using System.Collections.Generic;
 using System.Drawing;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Controls;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Types;
@@ -375,7 +376,7 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 			if(preventchanges) return;
 			preventchanges = true;
-			anglecontrol.Angle = angle.GetResult(GZBuilder.Controls.AngleControl.NO_ANGLE);
+			anglecontrol.Angle = angle.GetResult(AngleControlEx.NO_ANGLE);
 			preventchanges = false;
 			if(!preventmapchange) ApplyAngleChange(); //mxd
 		}
@@ -391,9 +392,9 @@ namespace CodeImp.DoomBuilder.Windows
 		private void pitch_WhenTextChanged(object sender, EventArgs e) 
 		{
 			if(preventchanges) return;
-			int p = pitch.GetResult(GZBuilder.Controls.AngleControl.NO_ANGLE);
+			int p = pitch.GetResult(AngleControlEx.NO_ANGLE);
 			preventchanges = true;
-			pitchControl.Angle = (p == GZBuilder.Controls.AngleControl.NO_ANGLE ? p : p + 90);
+			pitchControl.Angle = (p == AngleControlEx.NO_ANGLE ? p : p + 90);
 			preventchanges = false;
 			if(!preventmapchange) ApplyPitchChange();
 		}
@@ -408,9 +409,9 @@ namespace CodeImp.DoomBuilder.Windows
 		private void roll_WhenTextChanged(object sender, EventArgs e) 
 		{
 			if(preventchanges) return;
-			int r = roll.GetResult(GZBuilder.Controls.AngleControl.NO_ANGLE);
+			int r = roll.GetResult(AngleControlEx.NO_ANGLE);
 			preventchanges = true;
-			rollControl.Angle = (r == GZBuilder.Controls.AngleControl.NO_ANGLE ? r : r + 90);
+			rollControl.Angle = (r == AngleControlEx.NO_ANGLE ? r : r + 90);
 			preventchanges = false;
 			if(!preventmapchange) ApplyRollChange();
 		}
diff --git a/Source/Core/GZBuilder/Windows/ThingStatisticsForm.Designer.cs b/Source/Core/Windows/ThingStatisticsForm.Designer.cs
similarity index 97%
rename from Source/Core/GZBuilder/Windows/ThingStatisticsForm.Designer.cs
rename to Source/Core/Windows/ThingStatisticsForm.Designer.cs
index 8c58c5ceaebbeaaaa2ed42c012de7751f9708296..774c17c3b5e2b3f5461b964e3821b536b83ffd11 100644
--- a/Source/Core/GZBuilder/Windows/ThingStatisticsForm.Designer.cs
+++ b/Source/Core/Windows/ThingStatisticsForm.Designer.cs
@@ -1,4 +1,4 @@
-namespace CodeImp.DoomBuilder.GZBuilder.Windows
+namespace CodeImp.DoomBuilder.Windows
 {
     partial class ThingStatisticsForm
     {
diff --git a/Source/Core/GZBuilder/Windows/ThingStatisticsForm.cs b/Source/Core/Windows/ThingStatisticsForm.cs
similarity index 95%
rename from Source/Core/GZBuilder/Windows/ThingStatisticsForm.cs
rename to Source/Core/Windows/ThingStatisticsForm.cs
index 37d14c0b1b74ccadf82e2677dc2be2cb7d918340..469ea8378b967486ef9c2f2630ebd3477d4dbd60 100644
--- a/Source/Core/GZBuilder/Windows/ThingStatisticsForm.cs
+++ b/Source/Core/Windows/ThingStatisticsForm.cs
@@ -7,9 +7,8 @@ using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Windows;
 
-namespace CodeImp.DoomBuilder.GZBuilder.Windows
+namespace CodeImp.DoomBuilder.Windows
 {
     public partial class ThingStatisticsForm : DelayedForm
     {
diff --git a/Source/Core/GZBuilder/Windows/ThingStatisticsForm.resx b/Source/Core/Windows/ThingStatisticsForm.resx
similarity index 100%
rename from Source/Core/GZBuilder/Windows/ThingStatisticsForm.resx
rename to Source/Core/Windows/ThingStatisticsForm.resx
diff --git a/Source/Core/GZBuilder/GZDoom/GldefsParser.cs b/Source/Core/ZDoom/GldefsParser.cs
similarity index 96%
rename from Source/Core/GZBuilder/GZDoom/GldefsParser.cs
rename to Source/Core/ZDoom/GldefsParser.cs
index 0333cb5aa7d637cc88feb00f2d1f15225c28ac79..e08de67c64048ac759f48fab3f0ae99d92d38ca3 100644
--- a/Source/Core/GZBuilder/GZDoom/GldefsParser.cs
+++ b/Source/Core/ZDoom/GldefsParser.cs
@@ -7,14 +7,13 @@ using System.Collections.Generic;
 using System.Globalization;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.ZDoom;
 using CodeImp.DoomBuilder.GZBuilder.Data;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.IO;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
+namespace CodeImp.DoomBuilder.ZDoom
 {
 	internal sealed class GldefsParser : ZDTextParser
 	{
diff --git a/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs b/Source/Core/ZDoom/MapinfoParser.cs
similarity index 95%
rename from Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
rename to Source/Core/ZDoom/MapinfoParser.cs
index 067c16b795faa7053dbcc3ff202802fa0726d339..74a2a6736aa5792ca1ff0c81edf201f793287b2d 100644
--- a/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
+++ b/Source/Core/ZDoom/MapinfoParser.cs
@@ -7,12 +7,11 @@ using System.IO;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.ZDoom;
 using CodeImp.DoomBuilder.GZBuilder.Data;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.GZDoom 
+namespace CodeImp.DoomBuilder.ZDoom 
 {
 	internal sealed class MapinfoParser : ZDTextParser
 	{
diff --git a/Source/Core/GZBuilder/GZDoom/ModeldefParser.cs b/Source/Core/ZDoom/ModeldefParser.cs
similarity index 95%
rename from Source/Core/GZBuilder/GZDoom/ModeldefParser.cs
rename to Source/Core/ZDoom/ModeldefParser.cs
index 2d0bca9f2610e756c5c31811b361353fbdcf4631..cc9f5f53d127152ab1722b3057a3221d170bc140 100644
--- a/Source/Core/GZBuilder/GZDoom/ModeldefParser.cs
+++ b/Source/Core/ZDoom/ModeldefParser.cs
@@ -5,13 +5,12 @@ using System.Collections.Generic;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Geometry;
-using CodeImp.DoomBuilder.ZDoom;
 using CodeImp.DoomBuilder.GZBuilder.Data;
 using SlimDX;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.GZDoom 
+namespace CodeImp.DoomBuilder.ZDoom 
 {
 	internal class ModeldefParser : ZDTextParser
 	{
diff --git a/Source/Core/GZBuilder/GZDoom/ModeldefStructure.cs b/Source/Core/ZDoom/ModeldefStructure.cs
similarity index 96%
rename from Source/Core/GZBuilder/GZDoom/ModeldefStructure.cs
rename to Source/Core/ZDoom/ModeldefStructure.cs
index d232f88dc38c940659698f95278fb32c3424b90f..da09a7ba7259d96a4800ab060b63d1702637da2e 100644
--- a/Source/Core/GZBuilder/GZDoom/ModeldefStructure.cs
+++ b/Source/Core/ZDoom/ModeldefStructure.cs
@@ -9,7 +9,7 @@ using CodeImp.DoomBuilder.GZBuilder.Data;
 
 #endregion
 
-namespace CodeImp.DoomBuilder.GZBuilder.GZDoom 
+namespace CodeImp.DoomBuilder.ZDoom 
 {
 	internal sealed class ModeldefStructure
 	{
diff --git a/Source/Core/GZBuilder/GZDoom/AcsParserSE.cs b/Source/Core/ZDoom/Scripting/AcsParserSE.cs
similarity index 96%
rename from Source/Core/GZBuilder/GZDoom/AcsParserSE.cs
rename to Source/Core/ZDoom/Scripting/AcsParserSE.cs
index e5664493e4ea26f81c92003496c3662f21fbc44e..d1b34aa53d566c7a75ae78a86537efc518ec6952 100644
--- a/Source/Core/GZBuilder/GZDoom/AcsParserSE.cs
+++ b/Source/Core/ZDoom/Scripting/AcsParserSE.cs
@@ -6,13 +6,12 @@ using System.Collections.Generic;
 using System.Globalization;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.ZDoom;
 using CodeImp.DoomBuilder.GZBuilder.Data;
 
 #endregion
 
 //mxd. ACS parser used to create ScriptItems for use in script editor's navigator
-namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
+namespace CodeImp.DoomBuilder.ZDoom.Scripting
 {
 	internal sealed class AcsParserSE : ZDTextParser
 	{
diff --git a/Source/Core/GZBuilder/GZDoom/DecorateParserSE.cs b/Source/Core/ZDoom/Scripting/DecorateParserSE.cs
similarity index 92%
rename from Source/Core/GZBuilder/GZDoom/DecorateParserSE.cs
rename to Source/Core/ZDoom/Scripting/DecorateParserSE.cs
index 604abb799fecc296134cae6d1b0fcedb51f4ce1f..7d4df6aa9dd137923c12e2e6dadc2def427b7d08 100644
--- a/Source/Core/GZBuilder/GZDoom/DecorateParserSE.cs
+++ b/Source/Core/ZDoom/Scripting/DecorateParserSE.cs
@@ -1,12 +1,11 @@
 using System.Collections.Generic;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.ZDoom;
 using CodeImp.DoomBuilder.GZBuilder.Data;
 
 //mxd. Decorate parser used to create ScriptItems for use in script editor's navigator
 //Should be able to parse actor definitions even from invalid DECORATE and should never fail parsing
-namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
+namespace CodeImp.DoomBuilder.ZDoom.Scripting
 {
 	internal sealed class DecorateParserSE : ZDTextParser
 	{
diff --git a/Source/Core/GZBuilder/GZDoom/ModeldefParserSE.cs b/Source/Core/ZDoom/Scripting/ModeldefParserSE.cs
similarity index 89%
rename from Source/Core/GZBuilder/GZDoom/ModeldefParserSE.cs
rename to Source/Core/ZDoom/Scripting/ModeldefParserSE.cs
index df01d30332e98be56128135715a5025e624c1721..96136b58ffd6c3fd2afda7fc85c0f5c35a03d3f6 100644
--- a/Source/Core/GZBuilder/GZDoom/ModeldefParserSE.cs
+++ b/Source/Core/ZDoom/Scripting/ModeldefParserSE.cs
@@ -1,17 +1,16 @@
-using CodeImp.DoomBuilder.Data;
-
+
 #region ================== Namespaces
 
 using System.Collections.Generic;
 using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.GZBuilder.Data;
-using CodeImp.DoomBuilder.ZDoom;
 
 #endregion
 
 //mxd. Modeldef parser used to create ScriptItems for use in script editor's navigator
 //Should be parse model definitions even from invalid MODELDEF and should never fail parsing
-namespace CodeImp.DoomBuilder.GZBuilder.GZDoom 
+namespace CodeImp.DoomBuilder.ZDoom.Scripting
 {
 	internal sealed class ModeldefParserSE : ZDTextParser 
 	{
diff --git a/Source/Core/GZBuilder/GZDoom/ScriptTypeParserSE.cs b/Source/Core/ZDoom/Scripting/ScriptTypeParserSE.cs
similarity index 92%
rename from Source/Core/GZBuilder/GZDoom/ScriptTypeParserSE.cs
rename to Source/Core/ZDoom/Scripting/ScriptTypeParserSE.cs
index 7e5ab16e08986ed288fc9cc0a2c1ab7ed570e17a..e1e1bde890d14ece638a9c63329e37591fb86af0 100644
--- a/Source/Core/GZBuilder/GZDoom/ScriptTypeParserSE.cs
+++ b/Source/Core/ZDoom/Scripting/ScriptTypeParserSE.cs
@@ -3,12 +3,11 @@
 
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.ZDoom;
 
 #endregion
 
 //mxd. Parser used to determine which script type given text is.
-namespace CodeImp.DoomBuilder.GZBuilder.GZDoom 
+namespace CodeImp.DoomBuilder.ZDoom.Scripting
 {
 	internal sealed class ScriptTypeParserSE :ZDTextParser 
 	{
diff --git a/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs b/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs
index b56ec485aca1e6653e167b6e1181a63d8c0d19ab..0814572763e0f39c2656b1d22350a6e782209457 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs
@@ -23,7 +23,6 @@ using System.Windows.Forms;
 using CodeImp.DoomBuilder.Actions;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.Windows;
diff --git a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
index a8c516b196a38797039d3d8c42ff88194d2a4835..031e2f0a9310c944f51e0c7aa27254f515f757a3 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
@@ -27,7 +27,6 @@ using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.Types;
diff --git a/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs
index d5f3438d041c80b53a7eeb5df39bcc88c6c3219b..35c71d90f6a75098288c09becc885ca359183c87 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs
@@ -25,7 +25,6 @@ using CodeImp.DoomBuilder.BuilderModes.Interface;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.Types;
diff --git a/Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs
index 10138120565f72b2436c4f22c470cb4cb10cab24..3d31aba46133ddcfde855421dd98a99d56f98d92 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs
@@ -26,7 +26,6 @@ using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.GZBuilder.Data;
 using CodeImp.DoomBuilder.Geometry;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.Types;
diff --git a/Source/Plugins/BuilderModes/ErrorChecks/ResultMissingFlat.cs b/Source/Plugins/BuilderModes/ErrorChecks/ResultMissingFlat.cs
index da5ac4b9318fae9408c0c1209c59fb980b954323..b5ac4f8f68d98f7b1cf81aa508ed3fc7a354305a 100644
--- a/Source/Plugins/BuilderModes/ErrorChecks/ResultMissingFlat.cs
+++ b/Source/Plugins/BuilderModes/ErrorChecks/ResultMissingFlat.cs
@@ -1,7 +1,6 @@
 #region ================== Namespaces
 
 using System;
-using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 
diff --git a/Source/Plugins/BuilderModes/ErrorChecks/ResultUnknownFlat.cs b/Source/Plugins/BuilderModes/ErrorChecks/ResultUnknownFlat.cs
index 07bfab74b7400a439aba99d7dc998d8c95928431..d0f04a92799763e3f5a33f8645850ec94d83ea93 100644
--- a/Source/Plugins/BuilderModes/ErrorChecks/ResultUnknownFlat.cs
+++ b/Source/Plugins/BuilderModes/ErrorChecks/ResultUnknownFlat.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 
diff --git a/Source/Plugins/BuilderModes/ErrorChecks/ResultUnknownTexture.cs b/Source/Plugins/BuilderModes/ErrorChecks/ResultUnknownTexture.cs
index d5d5131b276d6a3cd669bad62164ba86aeae0fd2..e6628dea150e1131e56e6f5e87f4308810091f7c 100644
--- a/Source/Plugins/BuilderModes/ErrorChecks/ResultUnknownTexture.cs
+++ b/Source/Plugins/BuilderModes/ErrorChecks/ResultUnknownTexture.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 
diff --git a/Source/Plugins/BuilderModes/General/BuilderPlug.cs b/Source/Plugins/BuilderModes/General/BuilderPlug.cs
index 71d2eea7e04efaee538e9cac4ee3a3abbb026a27..d03744c5f2b74266142f8011e94e1c5d56a72ec1 100644
--- a/Source/Plugins/BuilderModes/General/BuilderPlug.cs
+++ b/Source/Plugins/BuilderModes/General/BuilderPlug.cs
@@ -31,7 +31,6 @@ using CodeImp.DoomBuilder.Controls;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
-using CodeImp.DoomBuilder.GZBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Plugins;
 using CodeImp.DoomBuilder.Rendering;
diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs
index a6b9660631d9fe883adb327d89e33ad4bd6cfa98..caade543cd313496e86156e6d4edcaff596d55eb 100644
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs
@@ -25,7 +25,6 @@ using System.Windows.Forms;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.GZBuilder.Data;
-using CodeImp.DoomBuilder.IO;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.VisualModes;
diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
index 752fc7134d1190d6014c9ca110ce1ca1690bc7de..5842c1ddee8dafd230fd0ed006138044d458409c 100644
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
@@ -18,7 +18,6 @@
 
 using System;
 using System.Collections.Generic;
-using System.Drawing;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.BuilderModes.Interface;
 using CodeImp.DoomBuilder.Windows;
diff --git a/Source/Plugins/NodesViewer/BuilderPlug.cs b/Source/Plugins/NodesViewer/BuilderPlug.cs
index 1111ce3b57412f2a7759836d80701ef73d1872ab..568722a36dd6f2b2178c9b391e070a48a510db42 100644
--- a/Source/Plugins/NodesViewer/BuilderPlug.cs
+++ b/Source/Plugins/NodesViewer/BuilderPlug.cs
@@ -16,9 +16,6 @@
 
 #region ================== Namespaces
 
-using System;
-using System.IO;
-
 #endregion
 
 namespace CodeImp.DoomBuilder.Plugins.NodesViewer
diff --git a/Source/Plugins/TagRange/BuilderPlug.cs b/Source/Plugins/TagRange/BuilderPlug.cs
index 5ef8a584c0e87243f4ebb9355be96fc34a232b09..3348a8f5407fd1a908d31c8dda0003f1ca090581 100644
--- a/Source/Plugins/TagRange/BuilderPlug.cs
+++ b/Source/Plugins/TagRange/BuilderPlug.cs
@@ -16,7 +16,6 @@
 
 #region ================== Namespaces
 
-using System.Windows.Forms;
 using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Plugins;