diff --git a/io_scene_fbx/export_fbx.py b/io_scene_fbx/export_fbx.py
index e8b03884603db9174211270ee70b10a9398ce5cd..4cc7adb7a57f226722ddaf7eee9277e076ce082b 100644
--- a/io_scene_fbx/export_fbx.py
+++ b/io_scene_fbx/export_fbx.py
@@ -50,6 +50,7 @@ sane_name_mapping_group = {}
 
 # Make sure reserved names are not used
 sane_name_mapping_ob['Scene'] = 'Scene_'
+sane_name_mapping_ob_unique.add('Scene_')
 
 
 def increment_string(t):
@@ -553,11 +554,13 @@ def save_single(operator, scene, filepath="",
         # eEULER_ZXY
         # eEULER_ZYX
 
-        file.write('\n\t\t\tProperty: "RotationOffset", "Vector3D", "",0,0,0')
-        file.write('\n\t\t\tProperty: "RotationPivot", "Vector3D", "",0,0,0')
-        file.write('\n\t\t\tProperty: "ScalingOffset", "Vector3D", "",0,0,0')
-        file.write('\n\t\t\tProperty: "ScalingPivot", "Vector3D", "",0,0,0')
-        file.write('\n\t\t\tProperty: "TranslationActive", "bool", "",0')
+        file.write('\n\t\t\tProperty: "RotationOffset", "Vector3D", "",0,0,0'
+                   '\n\t\t\tProperty: "RotationPivot", "Vector3D", "",0,0,0'
+                   '\n\t\t\tProperty: "ScalingOffset", "Vector3D", "",0,0,0'
+                   '\n\t\t\tProperty: "ScalingPivot", "Vector3D", "",0,0,0'
+                   '\n\t\t\tProperty: "TranslationActive", "bool", "",0'
+                   )
+
         file.write('\n\t\t\tProperty: "TranslationMin", "Vector3D", "",%.15g,%.15g,%.15g' % constraints["loc_min"])
         file.write('\n\t\t\tProperty: "TranslationMax", "Vector3D", "",%.15g,%.15g,%.15g' % constraints["loc_max"])
         file.write('\n\t\t\tProperty: "TranslationMinX", "bool", "",%d' % constraints["loc_limit"][0])
@@ -566,12 +569,15 @@ def save_single(operator, scene, filepath="",
         file.write('\n\t\t\tProperty: "TranslationMaxX", "bool", "",%d' % constraints["loc_limit"][3])
         file.write('\n\t\t\tProperty: "TranslationMaxY", "bool", "",%d' % constraints["loc_limit"][4])
         file.write('\n\t\t\tProperty: "TranslationMaxZ", "bool", "",%d' % constraints["loc_limit"][5])
-        file.write('\n\t\t\tProperty: "RotationOrder", "enum", "",0')
-        file.write('\n\t\t\tProperty: "RotationSpaceForLimitOnly", "bool", "",0')
-        file.write('\n\t\t\tProperty: "AxisLen", "double", "",10')
-        file.write('\n\t\t\tProperty: "PreRotation", "Vector3D", "",0,0,0')
-        file.write('\n\t\t\tProperty: "PostRotation", "Vector3D", "",0,0,0')
-        file.write('\n\t\t\tProperty: "RotationActive", "bool", "",0')
+
+        file.write('\n\t\t\tProperty: "RotationOrder", "enum", "",0'
+                   '\n\t\t\tProperty: "RotationSpaceForLimitOnly", "bool", "",0'
+                   '\n\t\t\tProperty: "AxisLen", "double", "",10'
+                   '\n\t\t\tProperty: "PreRotation", "Vector3D", "",0,0,0'
+                   '\n\t\t\tProperty: "PostRotation", "Vector3D", "",0,0,0'
+                   '\n\t\t\tProperty: "RotationActive", "bool", "",0'
+                   )
+
         file.write('\n\t\t\tProperty: "RotationMin", "Vector3D", "",%.15g,%.15g,%.15g' % constraints["rot_min"])
         file.write('\n\t\t\tProperty: "RotationMax", "Vector3D", "",%.15g,%.15g,%.15g' % constraints["rot_max"])
         file.write('\n\t\t\tProperty: "RotationMinX", "bool", "",%d' % constraints["rot_limit"][0])
@@ -580,26 +586,29 @@ def save_single(operator, scene, filepath="",
         file.write('\n\t\t\tProperty: "RotationMaxX", "bool", "",%d' % constraints["rot_limit"][0])
         file.write('\n\t\t\tProperty: "RotationMaxY", "bool", "",%d' % constraints["rot_limit"][1])
         file.write('\n\t\t\tProperty: "RotationMaxZ", "bool", "",%d' % constraints["rot_limit"][2])
-        file.write('\n\t\t\tProperty: "RotationStiffnessX", "double", "",0')
-        file.write('\n\t\t\tProperty: "RotationStiffnessY", "double", "",0')
-        file.write('\n\t\t\tProperty: "RotationStiffnessZ", "double", "",0')
-        file.write('\n\t\t\tProperty: "MinDampRangeX", "double", "",0')
-        file.write('\n\t\t\tProperty: "MinDampRangeY", "double", "",0')
-        file.write('\n\t\t\tProperty: "MinDampRangeZ", "double", "",0')
-        file.write('\n\t\t\tProperty: "MaxDampRangeX", "double", "",0')
-        file.write('\n\t\t\tProperty: "MaxDampRangeY", "double", "",0')
-        file.write('\n\t\t\tProperty: "MaxDampRangeZ", "double", "",0')
-        file.write('\n\t\t\tProperty: "MinDampStrengthX", "double", "",0')
-        file.write('\n\t\t\tProperty: "MinDampStrengthY", "double", "",0')
-        file.write('\n\t\t\tProperty: "MinDampStrengthZ", "double", "",0')
-        file.write('\n\t\t\tProperty: "MaxDampStrengthX", "double", "",0')
-        file.write('\n\t\t\tProperty: "MaxDampStrengthY", "double", "",0')
-        file.write('\n\t\t\tProperty: "MaxDampStrengthZ", "double", "",0')
-        file.write('\n\t\t\tProperty: "PreferedAngleX", "double", "",0')
-        file.write('\n\t\t\tProperty: "PreferedAngleY", "double", "",0')
-        file.write('\n\t\t\tProperty: "PreferedAngleZ", "double", "",0')
-        file.write('\n\t\t\tProperty: "InheritType", "enum", "",0')
-        file.write('\n\t\t\tProperty: "ScalingActive", "bool", "",0')
+
+        file.write('\n\t\t\tProperty: "RotationStiffnessX", "double", "",0'
+                   '\n\t\t\tProperty: "RotationStiffnessY", "double", "",0'
+                   '\n\t\t\tProperty: "RotationStiffnessZ", "double", "",0'
+                   '\n\t\t\tProperty: "MinDampRangeX", "double", "",0'
+                   '\n\t\t\tProperty: "MinDampRangeY", "double", "",0'
+                   '\n\t\t\tProperty: "MinDampRangeZ", "double", "",0'
+                   '\n\t\t\tProperty: "MaxDampRangeX", "double", "",0'
+                   '\n\t\t\tProperty: "MaxDampRangeY", "double", "",0'
+                   '\n\t\t\tProperty: "MaxDampRangeZ", "double", "",0'
+                   '\n\t\t\tProperty: "MinDampStrengthX", "double", "",0'
+                   '\n\t\t\tProperty: "MinDampStrengthY", "double", "",0'
+                   '\n\t\t\tProperty: "MinDampStrengthZ", "double", "",0'
+                   '\n\t\t\tProperty: "MaxDampStrengthX", "double", "",0'
+                   '\n\t\t\tProperty: "MaxDampStrengthY", "double", "",0'
+                   '\n\t\t\tProperty: "MaxDampStrengthZ", "double", "",0'
+                   '\n\t\t\tProperty: "PreferedAngleX", "double", "",0'
+                   '\n\t\t\tProperty: "PreferedAngleY", "double", "",0'
+                   '\n\t\t\tProperty: "PreferedAngleZ", "double", "",0'
+                   '\n\t\t\tProperty: "InheritType", "enum", "",0'
+                   '\n\t\t\tProperty: "ScalingActive", "bool", "",0'
+                   )
+
         file.write('\n\t\t\tProperty: "ScalingMin", "Vector3D", "",%.15g,%.15g,%.15g' % constraints["sca_min"])
         file.write('\n\t\t\tProperty: "ScalingMax", "Vector3D", "",%.15g,%.15g,%.15g' % constraints["sca_max"])
         file.write('\n\t\t\tProperty: "ScalingMinX", "bool", "",%d' % constraints["sca_limit"][0])
@@ -608,19 +617,23 @@ def save_single(operator, scene, filepath="",
         file.write('\n\t\t\tProperty: "ScalingMaxX", "bool", "",%d' % constraints["sca_limit"][3])
         file.write('\n\t\t\tProperty: "ScalingMaxY", "bool", "",%d' % constraints["sca_limit"][4])
         file.write('\n\t\t\tProperty: "ScalingMaxZ", "bool", "",%d' % constraints["sca_limit"][5])
-        file.write('\n\t\t\tProperty: "GeometricTranslation", "Vector3D", "",0,0,0')
-        file.write('\n\t\t\tProperty: "GeometricRotation", "Vector3D", "",0,0,0')
-        file.write('\n\t\t\tProperty: "GeometricScaling", "Vector3D", "",1,1,1')
-        file.write('\n\t\t\tProperty: "LookAtProperty", "object", ""')
-        file.write('\n\t\t\tProperty: "UpVectorProperty", "object", ""')
-        file.write('\n\t\t\tProperty: "Show", "bool", "",1')
-        file.write('\n\t\t\tProperty: "NegativePercentShapeSupport", "bool", "",1')
-        file.write('\n\t\t\tProperty: "DefaultAttributeIndex", "int", "",0')
+
+        file.write('\n\t\t\tProperty: "GeometricTranslation", "Vector3D", "",0,0,0'
+                   '\n\t\t\tProperty: "GeometricRotation", "Vector3D", "",0,0,0'
+                   '\n\t\t\tProperty: "GeometricScaling", "Vector3D", "",1,1,1'
+                   '\n\t\t\tProperty: "LookAtProperty", "object", ""'
+                   '\n\t\t\tProperty: "UpVectorProperty", "object", ""'
+                   '\n\t\t\tProperty: "Show", "bool", "",1'
+                   '\n\t\t\tProperty: "NegativePercentShapeSupport", "bool", "",1'
+                   '\n\t\t\tProperty: "DefaultAttributeIndex", "int", "",0'
+                   )
+
         if ob and not isinstance(ob, bpy.types.Bone):
             # Only mesh objects have color
-            file.write('\n\t\t\tProperty: "Color", "Color", "A",0.8,0.8,0.8')
-            file.write('\n\t\t\tProperty: "Size", "double", "",100')
-            file.write('\n\t\t\tProperty: "Look", "enum", "",1')
+            file.write('\n\t\t\tProperty: "Color", "Color", "A",0.8,0.8,0.8'
+                       '\n\t\t\tProperty: "Size", "double", "",100'
+                       '\n\t\t\tProperty: "Look", "enum", "",1'
+                       )
 
         return loc, rot, scale, matrix, matrix_rot
 
@@ -648,15 +661,16 @@ def save_single(operator, scene, filepath="",
                    (my_bone.blenBone.head_local - my_bone.blenBone.tail_local).length)
 
         #file.write('\n\t\t\tProperty: "LimbLength", "double", "",1')
-        file.write('\n\t\t\tProperty: "Color", "ColorRGB", "",0.8,0.8,0.8')
-        file.write('\n\t\t\tProperty: "Color", "Color", "A",0.8,0.8,0.8')
-        file.write('\n\t\t}')
-        file.write('\n\t\tMultiLayer: 0')
-        file.write('\n\t\tMultiTake: 1')
-        file.write('\n\t\tShading: Y')
-        file.write('\n\t\tCulling: "CullingOff"')
-        file.write('\n\t\tTypeFlags: "Skeleton"')
-        file.write('\n\t}')
+        file.write('\n\t\t\tProperty: "Color", "ColorRGB", "",0.8,0.8,0.8'
+                   '\n\t\t\tProperty: "Color", "Color", "A",0.8,0.8,0.8'
+                   '\n\t\t}'
+                   '\n\t\tMultiLayer: 0'
+                   '\n\t\tMultiTake: 1'
+                   '\n\t\tShading: Y'
+                   '\n\t\tCulling: "CullingOff"'
+                   '\n\t\tTypeFlags: "Skeleton"'
+                   '\n\t}'
+                   )
 
     def write_camera_switch():
         file.write('''
@@ -685,89 +699,98 @@ def save_single(operator, scene, filepath="",
         file.write('\n\t\tVersion: 232')
         write_object_props(None, loc)
 
-        file.write('\n\t\t\tProperty: "Color", "Color", "A",0.8,0.8,0.8')
-        file.write('\n\t\t\tProperty: "Roll", "Roll", "A+",0')
-        file.write('\n\t\t\tProperty: "FieldOfView", "FieldOfView", "A+",40')
-        file.write('\n\t\t\tProperty: "FieldOfViewX", "FieldOfView", "A+",1')
-        file.write('\n\t\t\tProperty: "FieldOfViewY", "FieldOfView", "A+",1')
-        file.write('\n\t\t\tProperty: "OpticalCenterX", "Real", "A+",0')
-        file.write('\n\t\t\tProperty: "OpticalCenterY", "Real", "A+",0')
-        file.write('\n\t\t\tProperty: "BackgroundColor", "Color", "A+",0.63,0.63,0.63')
-        file.write('\n\t\t\tProperty: "TurnTable", "Real", "A+",0')
-        file.write('\n\t\t\tProperty: "DisplayTurnTableIcon", "bool", "",1')
-        file.write('\n\t\t\tProperty: "Motion Blur Intensity", "Real", "A+",1')
-        file.write('\n\t\t\tProperty: "UseMotionBlur", "bool", "",0')
-        file.write('\n\t\t\tProperty: "UseRealTimeMotionBlur", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ResolutionMode", "enum", "",0')
-        file.write('\n\t\t\tProperty: "ApertureMode", "enum", "",2')
-        file.write('\n\t\t\tProperty: "GateFit", "enum", "",0')
-        file.write('\n\t\t\tProperty: "FocalLength", "Real", "A+",21.3544940948486')
-        file.write('\n\t\t\tProperty: "CameraFormat", "enum", "",0')
-        file.write('\n\t\t\tProperty: "AspectW", "double", "",320')
-        file.write('\n\t\t\tProperty: "AspectH", "double", "",200')
-        file.write('\n\t\t\tProperty: "PixelAspectRatio", "double", "",1')
-        file.write('\n\t\t\tProperty: "UseFrameColor", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FrameColor", "ColorRGB", "",0.3,0.3,0.3')
-        file.write('\n\t\t\tProperty: "ShowName", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ShowGrid", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ShowOpticalCenter", "bool", "",0')
-        file.write('\n\t\t\tProperty: "ShowAzimut", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ShowTimeCode", "bool", "",0')
+        file.write('\n\t\t\tProperty: "Color", "Color", "A",0.8,0.8,0.8'
+                   '\n\t\t\tProperty: "Roll", "Roll", "A+",0'
+                   '\n\t\t\tProperty: "FieldOfView", "FieldOfView", "A+",40'
+                   '\n\t\t\tProperty: "FieldOfViewX", "FieldOfView", "A+",1'
+                   '\n\t\t\tProperty: "FieldOfViewY", "FieldOfView", "A+",1'
+                   '\n\t\t\tProperty: "OpticalCenterX", "Real", "A+",0'
+                   '\n\t\t\tProperty: "OpticalCenterY", "Real", "A+",0'
+                   '\n\t\t\tProperty: "BackgroundColor", "Color", "A+",0.63,0.63,0.63'
+                   '\n\t\t\tProperty: "TurnTable", "Real", "A+",0'
+                   '\n\t\t\tProperty: "DisplayTurnTableIcon", "bool", "",1'
+                   '\n\t\t\tProperty: "Motion Blur Intensity", "Real", "A+",1'
+                   '\n\t\t\tProperty: "UseMotionBlur", "bool", "",0'
+                   '\n\t\t\tProperty: "UseRealTimeMotionBlur", "bool", "",1'
+                   '\n\t\t\tProperty: "ResolutionMode", "enum", "",0'
+                   '\n\t\t\tProperty: "ApertureMode", "enum", "",2'
+                   '\n\t\t\tProperty: "GateFit", "enum", "",0'
+                   '\n\t\t\tProperty: "FocalLength", "Real", "A+",21.3544940948486'
+                   '\n\t\t\tProperty: "CameraFormat", "enum", "",0'
+                   '\n\t\t\tProperty: "AspectW", "double", "",320'
+                   '\n\t\t\tProperty: "AspectH", "double", "",200'
+                   '\n\t\t\tProperty: "PixelAspectRatio", "double", "",1'
+                   '\n\t\t\tProperty: "UseFrameColor", "bool", "",0'
+                   '\n\t\t\tProperty: "FrameColor", "ColorRGB", "",0.3,0.3,0.3'
+                   '\n\t\t\tProperty: "ShowName", "bool", "",1'
+                   '\n\t\t\tProperty: "ShowGrid", "bool", "",1'
+                   '\n\t\t\tProperty: "ShowOpticalCenter", "bool", "",0'
+                   '\n\t\t\tProperty: "ShowAzimut", "bool", "",1'
+                   '\n\t\t\tProperty: "ShowTimeCode", "bool", "",0'
+                   )
+
         file.write('\n\t\t\tProperty: "NearPlane", "double", "",%.6f' % near)
         file.write('\n\t\t\tProperty: "FarPlane", "double", "",%.6f' % far)
-        file.write('\n\t\t\tProperty: "FilmWidth", "double", "",0.816')
-        file.write('\n\t\t\tProperty: "FilmHeight", "double", "",0.612')
-        file.write('\n\t\t\tProperty: "FilmAspectRatio", "double", "",1.33333333333333')
-        file.write('\n\t\t\tProperty: "FilmSqueezeRatio", "double", "",1')
-        file.write('\n\t\t\tProperty: "FilmFormatIndex", "enum", "",4')
-        file.write('\n\t\t\tProperty: "ViewFrustum", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ViewFrustumNearFarPlane", "bool", "",0')
-        file.write('\n\t\t\tProperty: "ViewFrustumBackPlaneMode", "enum", "",2')
-        file.write('\n\t\t\tProperty: "BackPlaneDistance", "double", "",100')
-        file.write('\n\t\t\tProperty: "BackPlaneDistanceMode", "enum", "",0')
-        file.write('\n\t\t\tProperty: "ViewCameraToLookAt", "bool", "",1')
-        file.write('\n\t\t\tProperty: "LockMode", "bool", "",0')
-        file.write('\n\t\t\tProperty: "LockInterestNavigation", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FitImage", "bool", "",0')
-        file.write('\n\t\t\tProperty: "Crop", "bool", "",0')
-        file.write('\n\t\t\tProperty: "Center", "bool", "",1')
-        file.write('\n\t\t\tProperty: "KeepRatio", "bool", "",1')
-        file.write('\n\t\t\tProperty: "BackgroundMode", "enum", "",0')
-        file.write('\n\t\t\tProperty: "BackgroundAlphaTreshold", "double", "",0.5')
-        file.write('\n\t\t\tProperty: "ForegroundTransparent", "bool", "",1')
-        file.write('\n\t\t\tProperty: "DisplaySafeArea", "bool", "",0')
-        file.write('\n\t\t\tProperty: "SafeAreaDisplayStyle", "enum", "",1')
-        file.write('\n\t\t\tProperty: "SafeAreaAspectRatio", "double", "",1.33333333333333')
-        file.write('\n\t\t\tProperty: "Use2DMagnifierZoom", "bool", "",0')
-        file.write('\n\t\t\tProperty: "2D Magnifier Zoom", "Real", "A+",100')
-        file.write('\n\t\t\tProperty: "2D Magnifier X", "Real", "A+",50')
-        file.write('\n\t\t\tProperty: "2D Magnifier Y", "Real", "A+",50')
+
+        file.write('\n\t\t\tProperty: "FilmWidth", "double", "",0.816'
+                   '\n\t\t\tProperty: "FilmHeight", "double", "",0.612'
+                   '\n\t\t\tProperty: "FilmAspectRatio", "double", "",1.33333333333333'
+                   '\n\t\t\tProperty: "FilmSqueezeRatio", "double", "",1'
+                   '\n\t\t\tProperty: "FilmFormatIndex", "enum", "",4'
+                   '\n\t\t\tProperty: "ViewFrustum", "bool", "",1'
+                   '\n\t\t\tProperty: "ViewFrustumNearFarPlane", "bool", "",0'
+                   '\n\t\t\tProperty: "ViewFrustumBackPlaneMode", "enum", "",2'
+                   '\n\t\t\tProperty: "BackPlaneDistance", "double", "",100'
+                   '\n\t\t\tProperty: "BackPlaneDistanceMode", "enum", "",0'
+                   '\n\t\t\tProperty: "ViewCameraToLookAt", "bool", "",1'
+                   '\n\t\t\tProperty: "LockMode", "bool", "",0'
+                   '\n\t\t\tProperty: "LockInterestNavigation", "bool", "",0'
+                   '\n\t\t\tProperty: "FitImage", "bool", "",0'
+                   '\n\t\t\tProperty: "Crop", "bool", "",0'
+                   '\n\t\t\tProperty: "Center", "bool", "",1'
+                   '\n\t\t\tProperty: "KeepRatio", "bool", "",1'
+                   '\n\t\t\tProperty: "BackgroundMode", "enum", "",0'
+                   '\n\t\t\tProperty: "BackgroundAlphaTreshold", "double", "",0.5'
+                   '\n\t\t\tProperty: "ForegroundTransparent", "bool", "",1'
+                   '\n\t\t\tProperty: "DisplaySafeArea", "bool", "",0'
+                   '\n\t\t\tProperty: "SafeAreaDisplayStyle", "enum", "",1'
+                   '\n\t\t\tProperty: "SafeAreaAspectRatio", "double", "",1.33333333333333'
+                   '\n\t\t\tProperty: "Use2DMagnifierZoom", "bool", "",0'
+                   '\n\t\t\tProperty: "2D Magnifier Zoom", "Real", "A+",100'
+                   '\n\t\t\tProperty: "2D Magnifier X", "Real", "A+",50'
+                   '\n\t\t\tProperty: "2D Magnifier Y", "Real", "A+",50'
+                   )
+
         file.write('\n\t\t\tProperty: "CameraProjectionType", "enum", "",%i' % proj_type)
-        file.write('\n\t\t\tProperty: "UseRealTimeDOFAndAA", "bool", "",0')
-        file.write('\n\t\t\tProperty: "UseDepthOfField", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FocusSource", "enum", "",0')
-        file.write('\n\t\t\tProperty: "FocusAngle", "double", "",3.5')
-        file.write('\n\t\t\tProperty: "FocusDistance", "double", "",200')
-        file.write('\n\t\t\tProperty: "UseAntialiasing", "bool", "",0')
-        file.write('\n\t\t\tProperty: "AntialiasingIntensity", "double", "",0.77777')
-        file.write('\n\t\t\tProperty: "UseAccumulationBuffer", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FrameSamplingCount", "int", "",7')
-        file.write('\n\t\t}')
-        file.write('\n\t\tMultiLayer: 0')
-        file.write('\n\t\tMultiTake: 0')
-        file.write('\n\t\tHidden: "True"')
-        file.write('\n\t\tShading: Y')
-        file.write('\n\t\tCulling: "CullingOff"')
-        file.write('\n\t\tTypeFlags: "Camera"')
-        file.write('\n\t\tGeometryVersion: 124')
+
+        file.write('\n\t\t\tProperty: "UseRealTimeDOFAndAA", "bool", "",0'
+                   '\n\t\t\tProperty: "UseDepthOfField", "bool", "",0'
+                   '\n\t\t\tProperty: "FocusSource", "enum", "",0'
+                   '\n\t\t\tProperty: "FocusAngle", "double", "",3.5'
+                   '\n\t\t\tProperty: "FocusDistance", "double", "",200'
+                   '\n\t\t\tProperty: "UseAntialiasing", "bool", "",0'
+                   '\n\t\t\tProperty: "AntialiasingIntensity", "double", "",0.77777'
+                   '\n\t\t\tProperty: "UseAccumulationBuffer", "bool", "",0'
+                   '\n\t\t\tProperty: "FrameSamplingCount", "int", "",7'
+                   '\n\t\t}'
+                   '\n\t\tMultiLayer: 0'
+                   '\n\t\tMultiTake: 0'
+                   '\n\t\tHidden: "True"'
+                   '\n\t\tShading: Y'
+                   '\n\t\tCulling: "CullingOff"'
+                   '\n\t\tTypeFlags: "Camera"'
+                   '\n\t\tGeometryVersion: 124'
+                   )
+
         file.write('\n\t\tPosition: %.6f,%.6f,%.6f' % loc)
         file.write('\n\t\tUp: %i,%i,%i' % up)
-        file.write('\n\t\tLookAt: 0,0,0')
-        file.write('\n\t\tShowInfoOnMoving: 1')
-        file.write('\n\t\tShowAudio: 0')
-        file.write('\n\t\tAudioColor: 0,1,0')
-        file.write('\n\t\tCameraOrthoZoom: 1')
-        file.write('\n\t}')
+
+        file.write('\n\t\tLookAt: 0,0,0'
+                   '\n\t\tShowInfoOnMoving: 1'
+                   '\n\t\tShowAudio: 0'
+                   '\n\t\tAudioColor: 0,1,0'
+                   '\n\t\tCameraOrthoZoom: 1'
+                   '\n\t}')
 
     def write_camera_default():
         # This sucks but to match FBX converter its easier to
@@ -797,21 +820,27 @@ def save_single(operator, scene, filepath="",
 
         file.write('\n\t\t\tProperty: "Roll", "Roll", "A+",0')
         file.write('\n\t\t\tProperty: "FieldOfView", "FieldOfView", "A+",%.6f' % math.degrees(data.angle))
-        file.write('\n\t\t\tProperty: "FieldOfViewX", "FieldOfView", "A+",1')
-        file.write('\n\t\t\tProperty: "FieldOfViewY", "FieldOfView", "A+",1')
+
+        file.write('\n\t\t\tProperty: "FieldOfViewX", "FieldOfView", "A+",1'
+                   '\n\t\t\tProperty: "FieldOfViewY", "FieldOfView", "A+",1'
+                   )
+
         # file.write('\n\t\t\tProperty: "FocalLength", "Real", "A+",14.0323972702026')
         file.write('\n\t\t\tProperty: "OpticalCenterX", "Real", "A+",%.6f' % data.shift_x)  # not sure if this is in the correct units?
         file.write('\n\t\t\tProperty: "OpticalCenterY", "Real", "A+",%.6f' % data.shift_y)  # ditto
-        file.write('\n\t\t\tProperty: "BackgroundColor", "Color", "A+",0,0,0')
-        file.write('\n\t\t\tProperty: "TurnTable", "Real", "A+",0')
-        file.write('\n\t\t\tProperty: "DisplayTurnTableIcon", "bool", "",1')
-        file.write('\n\t\t\tProperty: "Motion Blur Intensity", "Real", "A+",1')
-        file.write('\n\t\t\tProperty: "UseMotionBlur", "bool", "",0')
-        file.write('\n\t\t\tProperty: "UseRealTimeMotionBlur", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ResolutionMode", "enum", "",0')
-        file.write('\n\t\t\tProperty: "ApertureMode", "enum", "",2')
-        file.write('\n\t\t\tProperty: "GateFit", "enum", "",2')
-        file.write('\n\t\t\tProperty: "CameraFormat", "enum", "",0')
+
+        file.write('\n\t\t\tProperty: "BackgroundColor", "Color", "A+",0,0,0'
+                   '\n\t\t\tProperty: "TurnTable", "Real", "A+",0'
+                   '\n\t\t\tProperty: "DisplayTurnTableIcon", "bool", "",1'
+                   '\n\t\t\tProperty: "Motion Blur Intensity", "Real", "A+",1'
+                   '\n\t\t\tProperty: "UseMotionBlur", "bool", "",0'
+                   '\n\t\t\tProperty: "UseRealTimeMotionBlur", "bool", "",1'
+                   '\n\t\t\tProperty: "ResolutionMode", "enum", "",0'
+                   '\n\t\t\tProperty: "ApertureMode", "enum", "",2'
+                   '\n\t\t\tProperty: "GateFit", "enum", "",2'
+                   '\n\t\t\tProperty: "CameraFormat", "enum", "",0'
+                   )
+
         file.write('\n\t\t\tProperty: "AspectW", "double", "",%i' % width)
         file.write('\n\t\t\tProperty: "AspectH", "double", "",%i' % height)
 
@@ -824,62 +853,74 @@ def save_single(operator, scene, filepath="",
 
         Definition at line 234 of file kfbxcamera.h. '''
 
-        file.write('\n\t\t\tProperty: "PixelAspectRatio", "double", "",2')
+        file.write('\n\t\t\tProperty: "PixelAspectRatio", "double", "",2'
+                   '\n\t\t\tProperty: "UseFrameColor", "bool", "",0'
+                   '\n\t\t\tProperty: "FrameColor", "ColorRGB", "",0.3,0.3,0.3'
+                   '\n\t\t\tProperty: "ShowName", "bool", "",1'
+                   '\n\t\t\tProperty: "ShowGrid", "bool", "",1'
+                   '\n\t\t\tProperty: "ShowOpticalCenter", "bool", "",0'
+                   '\n\t\t\tProperty: "ShowAzimut", "bool", "",1'
+                   '\n\t\t\tProperty: "ShowTimeCode", "bool", "",0'
+                   )
 
-        file.write('\n\t\t\tProperty: "UseFrameColor", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FrameColor", "ColorRGB", "",0.3,0.3,0.3')
-        file.write('\n\t\t\tProperty: "ShowName", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ShowGrid", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ShowOpticalCenter", "bool", "",0')
-        file.write('\n\t\t\tProperty: "ShowAzimut", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ShowTimeCode", "bool", "",0')
         file.write('\n\t\t\tProperty: "NearPlane", "double", "",%.6f' % data.clip_start)
         file.write('\n\t\t\tProperty: "FarPlane", "double", "",%.6f' % data.clip_end)
-        file.write('\n\t\t\tProperty: "FilmWidth", "double", "",1.0')
-        file.write('\n\t\t\tProperty: "FilmHeight", "double", "",1.0')
+
+        file.write('\n\t\t\tProperty: "FilmWidth", "double", "",1.0'
+                   '\n\t\t\tProperty: "FilmHeight", "double", "",1.0'
+                   )
+
         file.write('\n\t\t\tProperty: "FilmAspectRatio", "double", "",%.6f' % aspect)
-        file.write('\n\t\t\tProperty: "FilmSqueezeRatio", "double", "",1')
-        file.write('\n\t\t\tProperty: "FilmFormatIndex", "enum", "",0')
-        file.write('\n\t\t\tProperty: "ViewFrustum", "bool", "",1')
-        file.write('\n\t\t\tProperty: "ViewFrustumNearFarPlane", "bool", "",0')
-        file.write('\n\t\t\tProperty: "ViewFrustumBackPlaneMode", "enum", "",2')
-        file.write('\n\t\t\tProperty: "BackPlaneDistance", "double", "",100')
-        file.write('\n\t\t\tProperty: "BackPlaneDistanceMode", "enum", "",0')
-        file.write('\n\t\t\tProperty: "ViewCameraToLookAt", "bool", "",1')
-        file.write('\n\t\t\tProperty: "LockMode", "bool", "",0')
-        file.write('\n\t\t\tProperty: "LockInterestNavigation", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FitImage", "bool", "",0')
-        file.write('\n\t\t\tProperty: "Crop", "bool", "",0')
-        file.write('\n\t\t\tProperty: "Center", "bool", "",1')
-        file.write('\n\t\t\tProperty: "KeepRatio", "bool", "",1')
-        file.write('\n\t\t\tProperty: "BackgroundMode", "enum", "",0')
-        file.write('\n\t\t\tProperty: "BackgroundAlphaTreshold", "double", "",0.5')
-        file.write('\n\t\t\tProperty: "ForegroundTransparent", "bool", "",1')
-        file.write('\n\t\t\tProperty: "DisplaySafeArea", "bool", "",0')
-        file.write('\n\t\t\tProperty: "SafeAreaDisplayStyle", "enum", "",1')
+
+        file.write('\n\t\t\tProperty: "FilmSqueezeRatio", "double", "",1'
+                   '\n\t\t\tProperty: "FilmFormatIndex", "enum", "",0'
+                   '\n\t\t\tProperty: "ViewFrustum", "bool", "",1'
+                   '\n\t\t\tProperty: "ViewFrustumNearFarPlane", "bool", "",0'
+                   '\n\t\t\tProperty: "ViewFrustumBackPlaneMode", "enum", "",2'
+                   '\n\t\t\tProperty: "BackPlaneDistance", "double", "",100'
+                   '\n\t\t\tProperty: "BackPlaneDistanceMode", "enum", "",0'
+                   '\n\t\t\tProperty: "ViewCameraToLookAt", "bool", "",1'
+                   '\n\t\t\tProperty: "LockMode", "bool", "",0'
+                   '\n\t\t\tProperty: "LockInterestNavigation", "bool", "",0'
+                   '\n\t\t\tProperty: "FitImage", "bool", "",0'
+                   '\n\t\t\tProperty: "Crop", "bool", "",0'
+                   '\n\t\t\tProperty: "Center", "bool", "",1'
+                   '\n\t\t\tProperty: "KeepRatio", "bool", "",1'
+                   '\n\t\t\tProperty: "BackgroundMode", "enum", "",0'
+                   '\n\t\t\tProperty: "BackgroundAlphaTreshold", "double", "",0.5'
+                   '\n\t\t\tProperty: "ForegroundTransparent", "bool", "",1'
+                   '\n\t\t\tProperty: "DisplaySafeArea", "bool", "",0'
+                   '\n\t\t\tProperty: "SafeAreaDisplayStyle", "enum", "",1'
+                   )
+
         file.write('\n\t\t\tProperty: "SafeAreaAspectRatio", "double", "",%.6f' % aspect)
-        file.write('\n\t\t\tProperty: "Use2DMagnifierZoom", "bool", "",0')
-        file.write('\n\t\t\tProperty: "2D Magnifier Zoom", "Real", "A+",100')
-        file.write('\n\t\t\tProperty: "2D Magnifier X", "Real", "A+",50')
-        file.write('\n\t\t\tProperty: "2D Magnifier Y", "Real", "A+",50')
-        file.write('\n\t\t\tProperty: "CameraProjectionType", "enum", "",0')
-        file.write('\n\t\t\tProperty: "UseRealTimeDOFAndAA", "bool", "",0')
-        file.write('\n\t\t\tProperty: "UseDepthOfField", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FocusSource", "enum", "",0')
-        file.write('\n\t\t\tProperty: "FocusAngle", "double", "",3.5')
-        file.write('\n\t\t\tProperty: "FocusDistance", "double", "",200')
-        file.write('\n\t\t\tProperty: "UseAntialiasing", "bool", "",0')
-        file.write('\n\t\t\tProperty: "AntialiasingIntensity", "double", "",0.77777')
-        file.write('\n\t\t\tProperty: "UseAccumulationBuffer", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FrameSamplingCount", "int", "",7')
+
+        file.write('\n\t\t\tProperty: "Use2DMagnifierZoom", "bool", "",0'
+                   '\n\t\t\tProperty: "2D Magnifier Zoom", "Real", "A+",100'
+                   '\n\t\t\tProperty: "2D Magnifier X", "Real", "A+",50'
+                   '\n\t\t\tProperty: "2D Magnifier Y", "Real", "A+",50'
+                   '\n\t\t\tProperty: "CameraProjectionType", "enum", "",0'
+                   '\n\t\t\tProperty: "UseRealTimeDOFAndAA", "bool", "",0'
+                   '\n\t\t\tProperty: "UseDepthOfField", "bool", "",0'
+                   '\n\t\t\tProperty: "FocusSource", "enum", "",0'
+                   '\n\t\t\tProperty: "FocusAngle", "double", "",3.5'
+                   '\n\t\t\tProperty: "FocusDistance", "double", "",200'
+                   '\n\t\t\tProperty: "UseAntialiasing", "bool", "",0'
+                   '\n\t\t\tProperty: "AntialiasingIntensity", "double", "",0.77777'
+                   '\n\t\t\tProperty: "UseAccumulationBuffer", "bool", "",0'
+                   '\n\t\t\tProperty: "FrameSamplingCount", "int", "",7'
+                   )
 
         file.write('\n\t\t}')
-        file.write('\n\t\tMultiLayer: 0')
-        file.write('\n\t\tMultiTake: 0')
-        file.write('\n\t\tShading: Y')
-        file.write('\n\t\tCulling: "CullingOff"')
-        file.write('\n\t\tTypeFlags: "Camera"')
-        file.write('\n\t\tGeometryVersion: 124')
+
+        file.write('\n\t\tMultiLayer: 0'
+                   '\n\t\tMultiTake: 0'
+                   '\n\t\tShading: Y'
+                   '\n\t\tCulling: "CullingOff"'
+                   '\n\t\tTypeFlags: "Camera"'
+                   '\n\t\tGeometryVersion: 124'
+                   )
+
         file.write('\n\t\tPosition: %.6f,%.6f,%.6f' % loc)
         file.write('\n\t\tUp: %.6f,%.6f,%.6f' % tuple(Vector((0.0, 1.0, 0.0)) * matrix_rot))
         file.write('\n\t\tLookAt: %.6f,%.6f,%.6f' % tuple(Vector((0.0, 0.0, -1.0)) * matrix_rot))
@@ -946,22 +987,27 @@ def save_single(operator, scene, filepath="",
         file.write('\n\t\t\tProperty: "GoboProperty", "object", ""')
         file.write('\n\t\t\tProperty: "DecayType", "enum", "",0')
         file.write('\n\t\t\tProperty: "DecayStart", "double", "",%.2f' % light.distance)
-        file.write('\n\t\t\tProperty: "EnableNearAttenuation", "bool", "",0')
-        file.write('\n\t\t\tProperty: "NearAttenuationStart", "double", "",0')
-        file.write('\n\t\t\tProperty: "NearAttenuationEnd", "double", "",0')
-        file.write('\n\t\t\tProperty: "EnableFarAttenuation", "bool", "",0')
-        file.write('\n\t\t\tProperty: "FarAttenuationStart", "double", "",0')
-        file.write('\n\t\t\tProperty: "FarAttenuationEnd", "double", "",0')
+
+        file.write('\n\t\t\tProperty: "EnableNearAttenuation", "bool", "",0'
+                   '\n\t\t\tProperty: "NearAttenuationStart", "double", "",0'
+                   '\n\t\t\tProperty: "NearAttenuationEnd", "double", "",0'
+                   '\n\t\t\tProperty: "EnableFarAttenuation", "bool", "",0'
+                   '\n\t\t\tProperty: "FarAttenuationStart", "double", "",0'
+                   '\n\t\t\tProperty: "FarAttenuationEnd", "double", "",0'
+                   )
+
         file.write('\n\t\t\tProperty: "CastShadows", "bool", "",%i' % do_shadow)
         file.write('\n\t\t\tProperty: "ShadowColor", "ColorRGBA", "",0,0,0,1')
         file.write('\n\t\t}')
-        file.write('\n\t\tMultiLayer: 0')
-        file.write('\n\t\tMultiTake: 0')
-        file.write('\n\t\tShading: Y')
-        file.write('\n\t\tCulling: "CullingOff"')
-        file.write('\n\t\tTypeFlags: "Light"')
-        file.write('\n\t\tGeometryVersion: 124')
-        file.write('\n\t}')
+
+        file.write('\n\t\tMultiLayer: 0'
+                   '\n\t\tMultiTake: 0'
+                   '\n\t\tShading: Y'
+                   '\n\t\tCulling: "CullingOff"'
+                   '\n\t\tTypeFlags: "Light"'
+                   '\n\t\tGeometryVersion: 124'
+                   '\n\t}'
+                   )
 
     # matrixOnly is not used at the moment
     def write_null(my_null=None, fbxName=None):
@@ -2044,7 +2090,7 @@ Definitions:  {
     file.write('''
 	ObjectType: "Model" {
 		Count: %i
-    }''' % (
+	}''' % (
         camera_count +
         len(ob_meshes) +
         len(ob_lights) +