Ashley, sorry but it seems to be getting more confusing. My intentions is to simply point out that the SDK Template and the SDK documentation describes the parameters used for the AddExpression function differently. I am surprised to hear that this could be correct.
I will try once again to point this out because I believe that the difference between the SDK Template and SDK Manual(as it stands) may cause confusion for newcomers to the community (it certainly did for me).
The difference is shown below.
[SDK Template]
AddExpression(id, flags, list_name, category, exp_name, description);
[SDK Manual]
AddExpression(id, flags, list_name, category, expression_name, script_name);
The SDK template and the SDK Manual both explain that the exp_name is used as the script name for expression (as you previously stated).
However, if the exp_name is used for the script name, then why is there a separate "script_name" parameter in the SDK Manual for the AddExpression function? Also, the listed "script_name" parameter in the SDK Manual for the AddExpression function is not documented at all on its use.
I believe that the SDK Template describes the parameters correctly because treating the last parameter as a string for displaying a description within the expressions panel during my plugin testing appears to work (meaning that the description that I add shows up in the expressions panel).