Oh bloody hell, I just hit a key combo for 'back' and lost a big fat message. Here we go again...
After having spent some time looking over the Raw Explorer there's an element missing that I'd like to bring to your attention. I'm not sure if you haven't gotten to implementing it or, because you're not a modder, are unaware of it. Looking at the Inorganic Analyser I see that CERAMIC_EARTHENWARE is listed as having a MAX_EDGE of 0. However, CERAMIC_EARTHENWARE does have a MAX_EDGE, it has the MAX_EDGE from STONE_TEMPLATE, which is 1000.
For reference here is CERAMIC_EARTHENWARE. Note the second line, the USE_MATERIAL_TEMPLATE. This is, what you'd call a macro, copy, or import statement (depending on what languages you've used). It is a directive to pull into the definition of the object RIGHT NOW the values from that material template. The reason I say RIGHT NOW is (and I know this works for plants, so it probably does inorganics too) any tokens you define in the object before the USE_MATERIAL_TEMPLATE statement are subsequently overwritten by the values pulled in from the template.
[INORGANIC:CERAMIC_EARTHENWARE]
[USE_MATERIAL_TEMPLATE:STONE_TEMPLATE]
[STATE_NAME_ADJ:ALL:earthenware]
[DISPLAY_COLOR:6:0:0][TILE:'#']
[SOLID_DENSITY:1360]
[IS_STONE]
[MATERIAL_VALUE:3]
[ABSORPTION:10]
[BLOCK_NAME:brick:bricks]
[DISPLAY_UNGLAZED]
[NO_STONE_STOCKPILE]
...and here is the original STONE_TEMPLATE
[MATERIAL_TEMPLATE:STONE_TEMPLATE]
[STATE_COLOR:ALL_SOLID:GRAY]
[STATE_NAME:ALL_SOLID:stone]
[STATE_ADJ:ALL_SOLID:stone]
[STATE_COLOR:LIQUID:ORANGE]
[STATE_NAME:LIQUID:magma]
[STATE_ADJ:LIQUID:magma]
[STATE_COLOR:GAS:ORANGE]
[STATE_NAME:GAS:boiling magma]
[STATE_ADJ:GAS:boiling magma]
[DISPLAY_COLOR:7:0:0]
[MATERIAL_VALUE:1]
[SPEC_HEAT:800]
[IGNITE_POINT:NONE]
[MELTING_POINT:11500]
[BOILING_POINT:14000]
[HEATDAM_POINT:NONE]
[COLDDAM_POINT:NONE]
[MAT_FIXED_TEMP:NONE]
[SOLID_DENSITY:2670]
[LIQUID_DENSITY:3300]
[MOLAR_MASS:36000]
[IMPACT_YIELD:120000]
[IMPACT_FRACTURE:120000]
[IMPACT_STRAIN_AT_YIELD:100]
[COMPRESSIVE_YIELD:120000]
[COMPRESSIVE_FRACTURE:120000]
[COMPRESSIVE_STRAIN_AT_YIELD:100]
[TENSILE_YIELD:15000]
[TENSILE_FRACTURE:15000]
[TENSILE_STRAIN_AT_YIELD:100]
[TORSION_YIELD:15000]
[TORSION_FRACTURE:15000]
[TORSION_STRAIN_AT_YIELD:100]
[SHEAR_YIELD:15000]
[SHEAR_FRACTURE:15000]
[SHEAR_STRAIN_AT_YIELD:100]
[BENDING_YIELD:15000]
[BENDING_FRACTURE:15000]
[BENDING_STRAIN_AT_YIELD:100]
[MAX_EDGE:1000]
[ABSORPTION:0]
[ITEMS_HARD]
[ITEMS_QUERN]
[REACTION_CLASS:CAN_GLAZE]
...and so, with the inclusion of the USE_MATERIAL_TEMPLATE, here is CERAMIC_EARTHENWARE's actual, full definition. The items in normal font are what were inherited from the STONE_TEMPLATE. The items that are struck out are what is in the STONE_TEMPLATE but are overridden by CERAMIC_EARTHENWARE definition. Finally, the items in bold are new from the CERAMIC_EARTHENWARE definition.
[INORGANIC:CERAMIC_EARTHENWARE]
[STATE_COLOR:ALL_SOLID:GRAY]
[STATE_NAME:ALL_SOLID:stone]
[STATE_ADJ:ALL_SOLID:stone]
[STATE_COLOR:LIQUID:ORANGE]
[STATE_NAME:LIQUID:magma]
[STATE_ADJ:LIQUID:magma]
[STATE_COLOR:GAS:ORANGE]
[STATE_NAME:GAS:boiling magma]
[STATE_ADJ:GAS:boiling magma]
[STATE_NAME_ADJ:ALL:earthenware]
[DISPLAY_COLOR:7:0:0]
[DISPLAY_COLOR:6:0:0]
[TILE:'#']
[MATERIAL_VALUE:1]
[MATERIAL_VALUE:3]
[SPEC_HEAT:800]
[IGNITE_POINT:NONE]
[MELTING_POINT:11500]
[BOILING_POINT:14000]
[HEATDAM_POINT:NONE]
[COLDDAM_POINT:NONE]
[MAT_FIXED_TEMP:NONE]
[SOLID_DENSITY:2670]
[SOLID_DENSITY:1360]
[LIQUID_DENSITY:3300]
[MOLAR_MASS:36000]
[IMPACT_YIELD:120000] used marble
[IMPACT_FRACTURE:120000]
[IMPACT_STRAIN_AT_YIELD:100]
[COMPRESSIVE_YIELD:120000]
[COMPRESSIVE_FRACTURE:120000]
[COMPRESSIVE_STRAIN_AT_YIELD:100]
[TENSILE_YIELD:15000]
[TENSILE_FRACTURE:15000]
[TENSILE_STRAIN_AT_YIELD:100]
[TORSION_YIELD:15000]
[TORSION_FRACTURE:15000]
[TORSION_STRAIN_AT_YIELD:100]
[SHEAR_YIELD:15000]
[SHEAR_FRACTURE:15000]
[SHEAR_STRAIN_AT_YIELD:100]
[BENDING_YIELD:15000]
[BENDING_FRACTURE:15000]
[BENDING_STRAIN_AT_YIELD:100]
[MAX_EDGE:1000]
[ABSORPTION:0]
[ABSORPTION:10]
[ITEMS_HARD]
[ITEMS_QUERN]
[REACTION_CLASS:CAN_GLAZE]
[IS_STONE]
[BLOCK_NAME:brick:bricks]
[DISPLAY_UNGLAZED]
[NO_STONE_STOCKPILE]
What follows is simply what I would create if my lazy ass was going to, take from it what you will - if any.
The modding tool that I want to see would, when it pulls in the raws, fully resolve every token of every object but would be aware of which values on an object are the 'default' values that it inherited and which ones are changed for that object. Then there would be an option to, when viewing objects, show the default values. When all tokens are displayed, I'd imagine the object-specific values would be in a black forecolor and the inherited defaults would be displayed with a gray forecolor. I would want to see the objects all properly related/linked up in the modding tool's memory such that if a material is changed, any object that inherits that material will be updated so it would display the new default values when viewed through the modding tool without having to save the raws out and then completely reload.
In a related vein, if an object has a token value assigned, and that value is the same as the default, I'd like to see the modding tool somehow indicate this, maybe with forecolor blue. We would want to always preserve a token which is the same as a template, since a template can change and that token would allow the object to keep the value it is meant to have.
Another related item. There are some tokens which allow updating of multiple token values. For example STATE_NAME_ADJ sets the STATE_NAME and STATE_ADJ at the same time. I think the tool should read from the was whatever sort of token is in them and populate the individual token items from it. Then, when it saves the objects back to the raws in the most efficient manner. So if an object has [STATE_NAME:moose] and [STATE_ADJ:moose] when original read in, when written back it out could be changed to [STATE_NAME_ADJ:moose].
I've just noticed how long this post is, I'll stop here.