Troubleshooting:
How the Three Sections are Linked:
The 'Vehicle', 'VehicleEngine' & 'VehicleEngineGranular' sections do not have to be next to each other (they usually are, just 'VehicleEngine' & 'VehicleEngineGranular' swapped around sometimes), but rather than their position/order in 'game.dat151.rel', the connections between the three sections are actually formed by the names & hashes directly under the 'Vehicle', 'VehicleEngine' & 'VehicleEngineGranular' lines.
Example:
<Item type="Vehicle" ntOffset="362535">
<Name>vigero</Name>
<Unk00 value="0x91004A69" />
<Engine>hash_E03115BB</Engine> <!-- Links to 'VehicleEngine' section (same hash) -->
<EngineGranular>hash_33290B6F</EngineGranular> <!-- Links to 'VehicleEngineGranular' section (same hash) -->
<Item type="VehicleEngine" ntOffset="362542">
<Name>hash_E03115BB</Name> <!-- Linked from '<Engine>' line above -->
<Item type="VehicleEngineGranular" ntOffset="362556">
<Name>hash_33290B6F</Name> <!-- Linked form '<EngineGranular>' above -->
Usual Plain English Format of the Three Main Names/Hashes:
They are usually in this format:
Example:
<Item type="Vehicle" ntOffset="362535">
<Name>vigero</Name> <!-- format = 'vehiclename' -->
<Unk00 value="0x91004A69" />
<Engine>vigero_engine</Engine> <!-- format = 'vehiclename_engine' -->
<EngineGranular>vigero_granular_engine</EngineGranular> <!-- format = 'vehiclename_granular_engine' -->
<Item type="VehicleEngine" ntOffset="362542">
<Name>vigero_engine</Name> <!-- format = 'vehiclename_engine' -->
<Item type="VehicleEngineGranular" ntOffset="362556">
<Name>vigero_granular_engine</Name> <!-- format = 'vehiclename_granular_engine' -->
So once you know the vehicle/sound profile name (the one under the '<Item type="Vehicle" ntOffset="#####">' line) you can then use the '<Engine>' & '<EngineGranular>' just under it to find the other two linked sections for that profile.
Note:
Some of the vehicles use their '.awc' name (or something very similar) in some of the 'vehicle-name-here' parts of their hashed phrases.
For example, vigero (& a few other vehicles) use 'musclecar_2_us_v8_' in their hash naming format:
Example:
VIGERO HASHES -
hash_E03115BB = vigero_engine
hash_33290B6F = vigero_granular_engine
hash_9B652D9B = musclecar_2_us_v8_engine_accel
hash_B4D51AE7 = musclecar_2_us_v8_exhaust_accel
hash_AB173DDE = musclecar_2_us_v8_engine_accel_npc
You only really need to know the plain English phrases to make you're job easer navigating & reading large heavily editing files, linking vanilla sections using the hash values works just as well & you can create whatever naming format you want for any add-on sounds you add, so don't worry about it too much.
I just thought I'd share some extra info, to give you a feel for how most things work to the same set of rules, but with a few odd things hidden in the files that buck that trend & do something different.