diff --git a/indra/llprimitive/llmodel.h b/indra/llprimitive/llmodel.h
index 4f4e642f689c329c4fe2bc9c18c30494d30bf51a..b5dd9bf87d001a7c7fbc401ae1ef436bc013034b 100644
--- a/indra/llprimitive/llmodel.h
+++ b/indra/llprimitive/llmodel.h
@@ -148,6 +148,7 @@ class LLModel : public LLVolume
 	static LLModel* loadModelFromDomMesh(domMesh* mesh);
 	static std::string getElementLabel(daeElement* element);
 	std::string getName() const;
+	std::string getMetric() const {return mMetric;}
 	EModelStatus getStatus() const {return mStatus;}
 	static std::string getStatusString(U32 status) ;
 
@@ -224,7 +225,7 @@ class LLModel : public LLVolume
 		bool areEqual( double a, double b )
 		{
 			const float epsilon = 1e-5f;
-			return (abs(a - b) < epsilon) && (a < b);
+			return (abs((int)(a - b)) < epsilon) && (a < b);
 		}
 		//Make sure that we return false for any values that are within the tolerance for equivalence
 		bool operator() ( const LLVector3& a, const LLVector3& b )
@@ -250,6 +251,8 @@ class LLModel : public LLVolume
 	std::string mRequestedLabel; // name requested in UI, if any.
 	std::string mLabel; // name computed from dae.
 
+	std::string mMetric; // user-supplied metric data for upload
+
 	LLVector3 mNormalizedScale;
 	LLVector3 mNormalizedTranslation;
 
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 6292ee97c8a7b09abde2f4d665a0654ce70f07bd..f2a9ccacecf83e90a66cd0266aa25b95c2981c6e 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -213,6 +213,7 @@ set(viewer_SOURCE_FILES
     llfloatermodelwizard.cpp
     llfloaternamedesc.cpp
     llfloaternotificationsconsole.cpp
+    llfloaterobjectweights.cpp
     llfloateropenobject.cpp
     llfloaterpay.cpp
     llfloaterperms.cpp
@@ -775,6 +776,7 @@ set(viewer_HEADER_FILES
     llfloatermodelwizard.h
     llfloaternamedesc.h
     llfloaternotificationsconsole.h
+    llfloaterobjectweights.h
     llfloateropenobject.h
     llfloaterpay.h
     llfloaterperms.h
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 7844afb4561101fade11b0ba858d090fe11b080b..6e3008049fe6744ca82957d790681ad6145c9b9c 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -3123,6 +3123,7 @@ void LLModelPreview::rebuildUploadData()
 
 	std::string requested_name = mFMP->getChild<LLUICtrl>("description_form")->getValue().asString();
 
+	std::string metric = mFMP->getChild<LLUICtrl>("model_category_combo")->getValue().asString();
 
 	LLSpinCtrl* scale_spinner = mFMP->getChild<LLSpinCtrl>("import_scale");
 
@@ -3184,6 +3185,7 @@ void LLModelPreview::rebuildUploadData()
 			if (base_model)
 			{
 				base_model->mRequestedLabel = requested_name;
+				base_model->mMetric = metric;
 			}
 
 			S32 idx = 0;
@@ -5524,10 +5526,10 @@ void LLFloaterModelPreview::toggleCalculateButton(bool visible)
 	if (visible)
 	{
 		std::string tbd = getString("tbd");
-		childSetTextArg("weights", "[EQ]", tbd);
-		childSetTextArg("weights", "[ST]", tbd);
-		childSetTextArg("weights", "[SIM]", tbd);
-		childSetTextArg("weights", "[PH]", tbd);
+		childSetTextArg("weights_right", "[EQ]", tbd);
+		childSetTextArg("weights_left", "[ST]", tbd);
+		childSetTextArg("weights_right", "[SIM]", tbd);
+		childSetTextArg("weights_left", "[PH]", tbd);
 		childSetTextArg("upload_fee", "[FEE]", tbd);
 		childSetTextArg("price_breakdown", "[STREAMING]", tbd);
 		childSetTextArg("price_breakdown", "[PHYSICS]", tbd);
@@ -5550,17 +5552,16 @@ void LLFloaterModelPreview::handleModelPhysicsFeeReceived()
 	const LLSD& result = mModelPhysicsFee;
 	mUploadModelUrl = result["url"].asString();
 
-	childSetTextArg("weights", "[EQ]", llformat("%0.3f", result["resource_cost"].asReal()));
-	childSetTextArg("weights", "[ST]", llformat("%0.3f", result["model_streaming_cost"].asReal()));
-	childSetTextArg("weights", "[SIM]", llformat("%0.3f", result["simulation_cost"].asReal()));
-	childSetTextArg("weights", "[PH]", llformat("%0.3f", result["physics_cost"].asReal()));
+	childSetTextArg("weights_right", "[EQ]", llformat("%0.3f", result["resource_cost"].asReal()));
+	childSetTextArg("weights_left", "[ST]", llformat("%0.3f", result["model_streaming_cost"].asReal()));
+	childSetTextArg("weights_right", "[SIM]", llformat("%0.3f", result["simulation_cost"].asReal()));
+	childSetTextArg("weights_left", "[PH]", llformat("%0.3f", result["physics_cost"].asReal()));
 	childSetTextArg("upload_fee", "[FEE]", llformat("%d", result["upload_price"].asInteger()));
 	childSetTextArg("price_breakdown", "[STREAMING]", llformat("%d", result["upload_price_breakdown"]["mesh_streaming"].asInteger()));
 	childSetTextArg("price_breakdown", "[PHYSICS]", llformat("%d", result["upload_price_breakdown"]["mesh_physics"].asInteger()));
 	childSetTextArg("price_breakdown", "[INSTANCES]", llformat("%d", result["upload_price_breakdown"]["mesh_instance"].asInteger()));
 	childSetTextArg("price_breakdown", "[TEXTURES]", llformat("%d", result["upload_price_breakdown"]["texture"].asInteger()));
 	childSetTextArg("price_breakdown", "[MODEL]", llformat("%d", result["upload_price_breakdown"]["model"].asInteger()));
-	childSetVisible("weights", true);
 	childSetVisible("upload_fee", true);
 	childSetVisible("price_breakdown", true);
 	mUploadBtn->setEnabled(mHasUploadPerm && !mUploadModelUrl.empty());
diff --git a/indra/newview/llfloaterobjectweights.cpp b/indra/newview/llfloaterobjectweights.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..93aa8dcf08ab7602d643e01ee4b9300577d639fa
--- /dev/null
+++ b/indra/newview/llfloaterobjectweights.cpp
@@ -0,0 +1,99 @@
+/**
+ * @file llfloaterobjectweights.cpp
+ * @brief Object weights advanced view floater
+ *
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterobjectweights.h"
+
+#include "lltextbox.h"
+
+LLFloaterObjectWeights::LLFloaterObjectWeights(const LLSD& key)
+:	LLFloater(key),
+	mSelectedObjects(NULL),
+	mSelectedPrims(NULL),
+	mSelectedDownloadWeight(NULL),
+	mSelectedPhysicsWeight(NULL),
+	mSelectedServerWeight(NULL),
+	mSelectedDisplayWeight(NULL),
+	mSelectedOnLand(NULL),
+	mRezzedOnLand(NULL),
+	mRemainingCapacity(NULL),
+	mTotalCapacity(NULL)
+{
+}
+
+LLFloaterObjectWeights::~LLFloaterObjectWeights()
+{
+}
+
+// virtual
+BOOL LLFloaterObjectWeights::postBuild()
+{
+	mSelectedObjects = getChild<LLTextBox>("objects");
+	mSelectedPrims = getChild<LLTextBox>("prims");
+
+	mSelectedDownloadWeight = getChild<LLTextBox>("download");
+	mSelectedPhysicsWeight = getChild<LLTextBox>("physics");
+	mSelectedServerWeight = getChild<LLTextBox>("server");
+	mSelectedDisplayWeight = getChild<LLTextBox>("display");
+
+	mSelectedOnLand = getChild<LLTextBox>("used_download_weight");
+	mRezzedOnLand = getChild<LLTextBox>("used_download_weight");
+	mRemainingCapacity = getChild<LLTextBox>("used_download_weight");
+	mTotalCapacity = getChild<LLTextBox>("used_download_weight");
+
+	return TRUE;
+}
+
+// virtual
+void LLFloaterObjectWeights::onOpen(const LLSD& key)
+{
+	updateIfNothingSelected();
+}
+
+void LLFloaterObjectWeights::toggleLoadingIndicators(bool visible)
+{
+	childSetVisible("download_loading_indicator", visible);
+	childSetVisible("physics_loading_indicator", visible);
+	childSetVisible("server_loading_indicator", visible);
+	childSetVisible("display_loading_indicator", visible);
+}
+
+void LLFloaterObjectWeights::updateIfNothingSelected()
+{
+	const std::string text = getString("nothing_selected");
+
+	mSelectedObjects->setText(text);
+	mSelectedPrims->setText(text);
+
+	mSelectedDownloadWeight->setText(text);
+	mSelectedPhysicsWeight->setText(text);
+	mSelectedServerWeight->setText(text);
+	mSelectedDisplayWeight->setText(text);
+
+	mSelectedOnLand->setText(text);
+
+	toggleLoadingIndicators(false);
+}
diff --git a/indra/newview/llfloaterobjectweights.h b/indra/newview/llfloaterobjectweights.h
new file mode 100644
index 0000000000000000000000000000000000000000..10e35ad7a7062a2af508ab52e7f5778cf05060c2
--- /dev/null
+++ b/indra/newview/llfloaterobjectweights.h
@@ -0,0 +1,64 @@
+/**
+ * @file llfloaterobjectweights.h
+ * @brief Object weights advanced view floater
+ *
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLFLOATEROBJECTWEIGHTS_H
+#define LL_LLFLOATEROBJECTWEIGHTS_H
+
+#include "llfloater.h"
+
+class LLTextBox;
+
+class LLFloaterObjectWeights : public LLFloater
+{
+public:
+	LOG_CLASS(LLFloaterObjectWeights);
+
+	LLFloaterObjectWeights(const LLSD& key);
+	~LLFloaterObjectWeights();
+
+	/*virtual*/ BOOL postBuild();
+
+	/*virtual*/ void onOpen(const LLSD& key);
+
+private:
+	void toggleLoadingIndicators(bool visible);
+	void updateIfNothingSelected();
+
+	LLTextBox		*mSelectedObjects;
+	LLTextBox		*mSelectedPrims;
+
+	LLTextBox		*mSelectedDownloadWeight;
+	LLTextBox		*mSelectedPhysicsWeight;
+	LLTextBox		*mSelectedServerWeight;
+	LLTextBox		*mSelectedDisplayWeight;
+
+	LLTextBox		*mSelectedOnLand;
+	LLTextBox		*mRezzedOnLand;
+	LLTextBox		*mRemainingCapacity;
+	LLTextBox		*mTotalCapacity;
+};
+
+#endif //LL_LLFLOATEROBJECTWEIGHTS_H
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 538c5e3b884de7997f791585408699921773bcc4..f948fbac5f6efdec146fe07906a6eccf0ec1e8d6 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -172,30 +172,9 @@ bool estate_dispatch_initialized = false;
 LLUUID LLFloaterRegionInfo::sRequestInvoice;
 
 
-void LLFloaterRegionInfo::onConsoleReplyReceived(const std::string& output)
-{
-	llwarns << "here is what they're giving us:  " << output << llendl;
-
-	if (output.find("FALSE") != std::string::npos)
-	{
-		getChild<LLUICtrl>("mesh_rez_enabled_check")->setValue(FALSE);
-	}
-	else
-	{
-		getChild<LLUICtrl>("mesh_rez_enabled_check")->setValue(TRUE);
-	}
-}
-
-
 LLFloaterRegionInfo::LLFloaterRegionInfo(const LLSD& seed)
 	: LLFloater(seed)
-{
-	mConsoleReplySignalConnection = LLFloaterRegionDebugConsole::setConsoleReplyCallback(
-	boost::bind(
-		&LLFloaterRegionInfo::onConsoleReplyReceived,
-		this,
-		_1));
-}
+{}
 
 BOOL LLFloaterRegionInfo::postBuild()
 {
@@ -246,9 +225,7 @@ BOOL LLFloaterRegionInfo::postBuild()
 }
 
 LLFloaterRegionInfo::~LLFloaterRegionInfo()
-{
-	mConsoleReplySignalConnection.disconnect();
-}
+{}
 
 void LLFloaterRegionInfo::onOpen(const LLSD& key)
 {
@@ -637,9 +614,6 @@ bool LLPanelRegionGeneralInfo::refreshFromRegion(LLViewerRegion* region)
 	getChildView("im_btn")->setEnabled(allow_modify);
 	getChildView("manage_telehub_btn")->setEnabled(allow_modify);
 
-	const bool enable_mesh = gMeshRepo.meshRezEnabled();
-	getChildView("mesh_rez_enabled_check")->setVisible(enable_mesh);
-	getChildView("mesh_rez_enabled_check")->setEnabled(getChildView("mesh_rez_enabled_check")->getEnabled() && enable_mesh);
 	// Data gets filled in by processRegionInfo
 
 	return LLPanelRegionInfo::refreshFromRegion(region);
@@ -658,7 +632,6 @@ BOOL LLPanelRegionGeneralInfo::postBuild()
 	initCtrl("access_combo");
 	initCtrl("restrict_pushobject");
 	initCtrl("block_parcel_search_check");
-	initCtrl("mesh_rez_enabled_check");
 
 	childSetAction("kick_btn", boost::bind(&LLPanelRegionGeneralInfo::onClickKick, this));
 	childSetAction("kick_all_btn", onClickKickAll, this);
@@ -874,27 +847,6 @@ BOOL LLPanelRegionGeneralInfo::sendUpdate()
 		sendEstateOwnerMessage(gMessageSystem, "setregioninfo", invoice, strings);
 	}
 
-	std::string sim_console_url = gAgent.getRegion()->getCapability("SimConsoleAsync");
-
-	if (!sim_console_url.empty())
-	{
-		std::string update_str = "set mesh_rez_enabled ";
-		if (getChild<LLUICtrl>("mesh_rez_enabled_check")->getValue().asBoolean())
-		{
-			update_str += "true";
-		}
-		else
-		{
-			update_str += "false";
-		}
-
-		LLHTTPClient::post(
-			sim_console_url,
-			LLSD(update_str),
-			new ConsoleUpdateResponder);
-	}
-
-
 	// if we changed access levels, tell user about it
 	LLViewerRegion* region = gAgent.getRegion();
 	if (region && (getChild<LLUICtrl>("access_combo")->getValue().asInteger() != region->getSimAccess()) )
diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h
index c1fef57ac98940e4ba567585f9ff0a122ccd7516..c402de66e86443ed6be7be5427c47fb7b0e8c787 100644
--- a/indra/newview/llfloaterregioninfo.h
+++ b/indra/newview/llfloaterregioninfo.h
@@ -100,10 +100,6 @@ class LLFloaterRegionInfo : public LLFloater
 	
 	LLFloaterRegionInfo(const LLSD& seed);
 	~LLFloaterRegionInfo();
-
-	void onConsoleReplyReceived(const std::string& output);
-
-	boost::signals2::connection mConsoleReplySignalConnection;;
 	
 protected:
 	void onTabSelected(const LLSD& param);
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index 84fb8bd9e7fb2d02d9f40ea6b7785fed3a39cd1f..9121e80a4e9f9395d8e1b5db7e28ad37a53c7360 100644
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -826,6 +826,9 @@ void LLFloaterTools::onClose(bool app_quitting)
 
 	//gMenuBarView->setItemVisible("BuildTools", FALSE);
 	LLFloaterReg::hideInstance("media_settings");
+
+	// hide the advanced object weights floater
+	LLFloaterReg::hideInstance("object_weights");
 }
 
 void click_popup_info(void*)
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 7ddc0db20d327ef70a6130ad5d8589c48bb3bba8..4b2fafccd4d9eedd7570788449600bf2b635527f 100644
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -1321,6 +1321,7 @@ void LLMeshUploadThread::wholeModelToLLSD(LLSD& dest, bool include_textures)
 
 	std::map<LLModel*,S32> mesh_index;
 	std::string model_name;
+	std::string model_metric;
 
 	S32 instance_num = 0;
 	
@@ -1342,6 +1343,11 @@ void LLMeshUploadThread::wholeModelToLLSD(LLSD& dest, bool include_textures)
 				model_name = data.mBaseModel->getName();
 			}
 
+			if (model_metric.empty())
+			{
+				model_metric = data.mBaseModel->getMetric();
+			}
+
 			std::stringstream ostr;
 			
 			LLModel::Decomposition& decomp =
@@ -1455,6 +1461,8 @@ void LLMeshUploadThread::wholeModelToLLSD(LLSD& dest, bool include_textures)
 
 	if (model_name.empty()) model_name = "mesh model";
 	result["name"] = model_name;
+	if (model_metric.empty()) model_metric = "MUT_Other";
+	result["metric"] = model_metric;
 	result["asset_resources"] = res;
 	dump_llsd_to_file(result,make_dump_name("whole_model_",dump_num));
 
@@ -3494,8 +3502,7 @@ void LLMeshRepository::buildPhysicsMesh(LLModel::Decomposition& decomp)
 bool LLMeshRepository::meshUploadEnabled()
 {
 	LLViewerRegion *region = gAgent.getRegion();
-	if(gSavedSettings.getBOOL("MeshEnabled") && 
-	   LLViewerParcelMgr::getInstance()->allowAgentBuild() &&
+	if(gSavedSettings.getBOOL("MeshEnabled") &&
 	   region)
 	{
 		return region->meshUploadEnabled();
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 26f05337a41d987387a3e121cc9b49650867edcd..b0a547cbf1d3f4d1410c7173fe2b63b0d8b02a7a 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -79,6 +79,7 @@
 #include "llfloatermodelwizard.h"
 #include "llfloaternamedesc.h"
 #include "llfloaternotificationsconsole.h"
+#include "llfloaterobjectweights.h"
 #include "llfloateropenobject.h"
 #include "llfloaterpay.h"
 #include "llfloaterperms.h"
@@ -226,6 +227,7 @@ void LLViewerFloaterReg::registerFloaters()
 	LLFloaterReg::add("notifications_console", "floater_notifications_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationConsole>);
 	LLFloaterReg::add("notification_well_window", "floater_sys_well.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLNotificationWellWindow>);
 
+	LLFloaterReg::add("object_weights", "floater_object_weights.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterObjectWeights>);
 	LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>);
 	LLFloaterReg::add("outgoing_call", "floater_outgoing_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLOutgoingCallDialog>);
 	LLFloaterPayUtil::registerFloater();
@@ -286,7 +288,7 @@ void LLViewerFloaterReg::registerFloaters()
 	LLFloaterReg::add("voice_controls", "floater_voice_controls.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLCallFloater>);
 	LLFloaterReg::add("voice_effect", "floater_voice_effect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterVoiceEffect>);
 
-	LLFloaterReg::add("web_content", "floater_web_content.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWebContent>);	
+	LLFloaterReg::add("web_content", "floater_web_content.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWebContent>);
 	LLFloaterReg::add("whitelist_entry", "floater_whitelist_entry.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWhiteListEntry>);	
 	LLFloaterWindowSizeUtil::registerFloater();
 	LLFloaterReg::add("world_map", "floater_world_map.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWorldMap>);	
diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml
index 1d4a1d4827dbcecd94dd0164313f84e51ef80bd3..c52f48cfaf23423aa30abe83caefb5578cdabc91 100644
--- a/indra/newview/skins/default/xui/en/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml
@@ -32,6 +32,22 @@
   </text>
   <line_editor bottom_delta="20" follows="top|left|right" height="19" max_length_bytes="64" 
 	     name="description_form" prevalidate_callback="ascii" width="290" />
+
+  <text bottom_delta="20" left="15" follows="left|top" height="15" name="model_category_label" text_color="White">
+    What does this model represent?
+  </text>
+  <combo_box top_pad="1" follows="left|top" height="23"
+	     name="model_category_combo"  width="200">
+    <combo_box.drop_down_button
+      label_color="White"/>
+    <combo_item name="Avatar shape" label="Avatar shape" value="MUT_AvatarShape"/>
+    <combo_item name="Avatar attachment" label="Avatar attachment" value="MUT_AvatarAttachment"/>
+    <combo_item name="Building Component" label="Building Component" value="MUT_BuildingComponent"/>
+    <combo_item name="Moving object (vehicle, animal)" label="Moving object (vehicle, animal)" value="MUT_MovingObject"/>
+    <combo_item name="Large, non moving etc" label="Large, non moving etc" value="MUT_LargeStationary"/>
+    <combo_item name="Smaller, non-moving etc" label="Smaller, non-moving etc" value="MUT_SmallStationary"/>
+    <combo_item name="Not really any of these" label="Not really any of these" value="MUT_Other"/>
+  </combo_box>
   
   <text bottom_delta="20" left="15" follows="left|top" height="15" name="lod_label">
     Preview:
@@ -95,32 +111,47 @@
      You will not be able to complete the final upload of this model to the Second Life servers. [[VURL] Find out how] to get enabled for mesh model uploads.</text>
 
   <text
-	height="65"
-	top_delta="45"
+	height="26"
+	top_pad="5"
 	left_delta="0"
-	name="weights_text"
+	name="weights_text_left"
 	width="80"
 	word_wrap="true" 
 	>
 Download:
 Physics:
-Server:
-
-Prim equivs:
   </text>
-
   <text
-	height="65"
+	height="26"
 	top_delta="0"
-	left_delta="80"
-	name="weights"
+	left_pad="0"
+	name="weights_left"
 	width="70"
 	word_wrap="true" 
 	>
 [ST]
 [PH]
+  </text>
+  <text
+	height="26"
+	top_delta="0"
+	left_pad="0"
+	name="weights_text_right"
+	width="80"
+	word_wrap="true" 
+	>
+Server:
+Prim equivs:
+  </text>
+  <text
+	height="26"
+	top_delta="0"
+	left_pad="0"
+	name="weights_right"
+	width="70"
+	word_wrap="true" 
+	>
 [SIM]
-
 [EQ]
   </text>
 
@@ -173,6 +204,18 @@ L$ [MODEL]
       name="lod_panel"
       help_topic="upload_model_lod">
 
+      <!-- LOD TABLE-->
+      <panel
+        follows="top|left"
+        name="lod table"
+        left="0"
+        top="0"
+        width="300"
+        height="163"
+        visible="true"
+        border="true"
+        bevel_style="none" bg_alpha_color="0 0 0 0" bg_opaque_color="0 0 0 0.3">
+
       <text left="10" width="240" bottom="20" height="15" follows="left|top" name="lod_table_header">
         Select Level of Detail:
       </text>
@@ -210,9 +253,22 @@ L$ [MODEL]
       </text>
 
       <icon height="16" width="16" left="20" follows="left|top" name="lod_status_message_icon"/>
-      <text left_pad="5" width="200" height="28" follows="left|top" top_pad="-15" wrap="true" name="lod_status_message_text"/>
+      <text left_pad="5" width="230" height="28" follows="left|top" top_pad="-15" wrap="true" name="lod_status_message_text"/>
+      </panel>
+
+      <!-- LOD MESH-->
+      <panel
+        follows="top|left"
+        name="mesh"
+        left="0"
+        top_pad="0"
+        width="300"
+        height="237"
+        visible="true"
+        border="true"
+        bevel_style="none" bg_alpha_color="0 0 0 0" bg_opaque_color="0 0 0 0.3">
 
-      <text top_pad="-3" left="10" height="15" follows="left|top">
+      <text top_pad="5" left="10" height="15" follows="left|top">
         Mesh
       </text>
 
@@ -236,10 +292,10 @@ L$ [MODEL]
       <spinner follows="top|left" name="lod_triangle_limit" increment="10" left_pad="5" height="20" width="100" decimal_digits="0" enabled="true"/>
       <spinner left_delta="0" bottom_delta="0" increment="0.01"  follows="top|left" name="lod_error_threshold" min_val="0" max_val="100" height="20" width="100" decimal_digits="3" visible="false" enabled="true"/>
 
-      <text follows="top|left" name="build_operator_text" left="45" top_pad="10" width="100" height="15">
+      <text follows="top|left" name="build_operator_text" left="45" top_pad="10" width="100" height="15" text_readonly_color="LabelDisabledColor">
         Build Operator:  
       </text>
-      <text follows="top|left" name="queue_mode_text" left_pad="5" width="100" height="15">
+      <text follows="top|left" name="queue_mode_text" left_pad="5" width="100" height="15" text_readonly_color="LabelDisabledColor">
         Queue Mode:
       </text>
       <combo_box follows="top|left" name="build_operator" top_pad="5" left="45" width="100" height="20">
@@ -263,11 +319,11 @@ L$ [MODEL]
         </combo_item>
       </combo_box>
 
-      <text top_pad="10" name="border_mode_text" left="45" follows="left|top" width="100" height="15">
+      <text top_pad="10" name="border_mode_text" left="45" follows="left|top" width="100" height="15" text_readonly_color="LabelDisabledColor">
         Border Mode:
       </text>
 
-      <text left_pad="5" name="share_tolderance_text"  follows="left|top" width="100" height="15">
+      <text left_pad="5" name="share_tolderance_text"  follows="left|top" width="100" height="15" text_readonly_color="LabelDisabledColor">
         Share Tolerance:
       </text>
 
@@ -280,14 +336,28 @@ L$ [MODEL]
         </combo_item>
       </combo_box>
       <spinner follows="left|top" name="share_tolerance" left_pad="5" width="100" decimal_digits="5" initial_value="0.00001" height="20"/>
-             
-      <text left="10" top_pad="35" follows="top|left" width="240" height="15">
+      </panel>
+
+      <!-- LOD GENERATE NORMALS-->
+      <panel
+        follows="top|left"
+        name="generate normals"
+        left="0"
+        top_pad="0"
+        width="300"
+        height="46"
+        visible="true"
+        border="true"
+        bevel_style="none" bg_alpha_color="0 0 0 0" bg_opaque_color="0 0 0 0.3">
+
+      <text left="10" top_pad="5" follows="top|left" width="240" height="15">
         Generate Normals
       </text>
       <text left="35" top_pad="5" follows="top|left" width="100" height="15" name="crease_label">
         Crease Angle:
       </text>
       <spinner follows="top|left" left_pad="5" min_val="0" max_val="180" value="75" width="60" height="20" name="crease_angle"/>  
+      </panel>
     </panel>
 
     <!--  PANEL -->
@@ -314,8 +384,8 @@ L$ [MODEL]
           <radio_item bottom="23" name="physics_use_lod" label="Use Level of Detail:"/>
         </radio_group>
 
-        <combo_box left="180" top="10" follows="left|top" height="18"
-	        name="physics_lod_combo" width="110" tool_tip="LOD to use for physics shape">
+        <combo_box left="150" top="10" follows="left|top" height="18"
+	        name="physics_lod_combo" width="130" tool_tip="LOD to use for physics shape">
           <combo_item name="physics_lowest">
             Lowest
           </combo_item>
@@ -448,7 +518,7 @@ L$ [MODEL]
 
       <spinner left="10" height="20" follows="top|left" width="80" top_pad="5" value="1.0" min_val="0.01" max_val="64.0" name="import_scale"/>
 
-      <text left_pad="20" height="15" name="import_dimensions" follows="top|left">
+      <text left_pad="20" height="15" width="140" name="import_dimensions" follows="top|left">
         [X] x [Y] x [Z] m
       </text>
 
diff --git a/indra/newview/skins/default/xui/en/floater_object_weights.xml b/indra/newview/skins/default/xui/en/floater_object_weights.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f377386679791c8e8c848e0bfc9ec506af38aeae
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_object_weights.xml
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_close="true"
+ can_tear_off="false"
+ height="315"
+ help_topic="objects_weight_floater"
+ layout="topleft"
+ name="object_weights"
+ save_rect="true"
+ single_instance="true"
+ title="ADVANCED"
+ width="200">
+    <floater.string
+     name="nothing_selected"
+     value="--"/>
+
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="selected_text"
+     text_color="EmphasisColor"
+     top="10"
+     value="SELECTED"
+     width="180" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="objects"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="objects_label"
+     top_delta="0"
+     value="Objects"
+     width="130" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="prims"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="prims_label"
+     top_delta="0"
+     value="Prims"
+     width="130" />
+    <view_border
+     bevel_style="none"
+     follows="top|left"
+     height="0"
+     layout="topleft"
+     left="10"
+     name="selected_text_border"
+     top_pad="5"
+     width="180"/>
+
+
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="weights_of_selected_text"
+     text_color="EmphasisColor"
+     top_pad="10"
+     value="WEIGHTS OF SELECTED"
+     width="180" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="download"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <loading_indicator
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="34"
+     name="download_loading_indicator"
+     top_delta="0"
+     width="16" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="download_label"
+     top_delta="0"
+     value="Download"
+     width="130" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="physics"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <loading_indicator
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="34"
+     name="physics_loading_indicator"
+     top_delta="0"
+     width="16" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="physics_label"
+     top_delta="0"
+     value="Physics"
+     width="130" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="server"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <loading_indicator
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="34"
+     name="server_loading_indicator"
+     top_delta="0"
+     width="16" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="server_label"
+     top_delta="0"
+     value="Server"
+     width="130" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="display"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <loading_indicator
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="34"
+     name="display_loading_indicator"
+     top_delta="0"
+     width="16" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="display_label"
+     top_delta="0"
+     value="Display"
+     width="130" />
+    <view_border
+     bevel_style="none"
+     follows="top|left"
+     height="0"
+     layout="topleft"
+     left="10"
+     name="weights_text_border"
+     top_pad="5"
+     width="180"/>
+
+
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="land_impacts_text"
+     text_color="EmphasisColor"
+     top_pad="10"
+     value="LAND IMPACTS"
+     width="180" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="selected"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="selected_label"
+     top_delta="0"
+     value="Selected"
+     width="130" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="rezzed_on_land"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="rezzed_on_land_label"
+     top_delta="0"
+     value="Rezzed on land"
+     width="130" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="remaining_capacity"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="remaining_capacity"
+     top_delta="0"
+     value="Remaining capacity"
+     width="130" />
+    <text
+     follows="left|top"
+     halign="right"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="total_capacity"
+     top_pad="3"
+     value="--"
+     width="40" />
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_pad="10"
+     name="total_capacity"
+     top_delta="0"
+     value="Total capacity"
+     width="130" />
+    <view_border
+     bevel_style="none"
+     follows="top|left"
+     height="0"
+     layout="topleft"
+     left="10"
+     name="land_impacts_text_border"
+     top_pad="5"
+     width="180"/>
+
+    <text
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="10"
+     name="total_capacity"
+     top_pad="10"
+     value="[secondlife:///www.secondlife.com What is all this?...]"
+     width="180" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index 890158379912f762803cf148953f29581d514bd9..e794a7067d5274442ea0b6a71b54909ea324a7fa 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -742,7 +742,7 @@
 	  top_pad="0"
 	  visible="false"
 	  width="280">
-	  Physics weight [PHYS_WEIGHT], Render Cost [DISP_WEIGHT].
+	  Physics weight [PHYS_WEIGHT], Render Cost [DISP_WEIGHT]. [secondlife:///app/openfloater/object_weights More info]
 	</text>
     <!-- <text -->
     <!-- text_color="LtGray_50" -->
diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml
index 3f9195d092d496520835517fe41bd39314b7f138..44c84e69a1892ac7bbe27cea8c7fa5c07f9f089c 100644
--- a/indra/newview/skins/default/xui/en/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_general.xml
@@ -133,17 +133,7 @@
      tool_tip="Let people see this region and its parcels in search results"
      top="190"
      width="80" />
-	<check_box
-     visible="FALSE"
-     height="20"
-     label="Allow Mesh Objects"
-     layout="topleft"
-     left="10"
-     name="mesh_rez_enabled_check"
-     tool_tip="Let people rez mesh objects on this region"
-     top="210"
-     width="80" />
-    <spinner
+	<spinner
      decimal_digits="0"
      follows="left|top"
      height="20"