Anders,
Congratulations! You have managed to create a symbol that confuses the hell out of all versions of Allegro :-) But after several hours of poking around and debugging, I think I have some answers for you (at least ones that work on my v16.5 win7-64 system).
The main issue that was causing the symbol to show up differently when placed on a board than what it looked like in the symbol editor was a caching "feature". I don't know what sequence of trial-error steps you used to get the symbol that was in your original zip, but it apparently had the erroneos padstack (with the soldermask shape defined for both pad and soldermask layers) stuck in its memory. Although you had updated the symbol somehow to look ok in the editor, it still had old padstack and shape symbols in its database.
I uncovered this annoying update/refresh problem as I started tring to correct the problems on my system. Essentially, when you place a component on a board for the first time (at least without a netlist driven placement) it grabs the package symbol data and padstack definitions along with any embedded shape symbol definitions and stores them in the board database. The same thing basically happens if you are editing a package symbol as well - the padstacks and embedded shapes get imported and saved in the package symbol file.
The confusion comes when you edit a package symbol to change padstacks definitions and do a Padstack-Refresh, it updates the padstack data and display, but it DOES NOT update the embedded shape symbol data that was grabbed during the initial placement. So when you grab this "updated" package symbol and place it on a board, you get the new padstack definitions but the previously stored shapes. If it should be a later attempt to update the board file again refreshing the package symbol with a newer version DOES NOT refresh the shape symbols.
I discovered this after deleting all symbols off my test board file, saving it, closing it to edit something else then re-opening the board and looking at the refresh symbols menu and noticing that it still showed the two shape symbols in its memory even with no components on the board!
Then of course the other issue that we've noted before was the placement of the origins in creating your pad shape symbols. Apparently having the origin on the "edge" of the shape causes confusion for the tools (and warning in the padstack editor) besides not doing what you want it to achieve. You also need to be careful about having the design resolution (no of decimal places) set consistently along with grid definitions between the brd and dra editing sessions. Goofy stuff does happen when "rounding" off as the tools import data from one symbol to the next.
Anyway, I went back to the beginning and fixed all the glitches (at least on my system) and the placed part looks good on the board now. I would send them to you but they are "up-reved" to 16.5 so you couldn't use them directly. Anyway here are the "fixit steps" you need to implement to hopefully get the desired results:
1) Fix your flash symbols to put the origin 0.5mm in from the straight edge for both the pad and mask versions (that's where I put it).
2) Fix your library padstack to call out the correct shapes for the BEGIN and SOLDERMASK_TOP layers. You don't need to specify a "flash" as this might confuse things elsewhere. After fixing the padstack def as needed, don't forget to re-save the file.
3) Now go edit your package symbol two ways. Do the Tools>Padstack>Refresh (or Replace) to get the new one imported. Would also be a good idea to do a Tools>Padstack>Modify Design Padstacks then a Purge>All to get rid of any unused padstack definitions hanging around in the symbol database.
4) Next on the package symbol do a Place>Update Symbols to see a list of all the "items" in the symbol database. If you expand the "Shapes/Symbols" box you will probably see your two shape symbols listed. Put a check in the box to select all of them then check the "update padstacks" box along with any of the others to be safe and click "Refresh". This should actually re-import the pad shapes into the symbol (which the first update padstacks step didn't do).
5) At this point your symbol will look messed up because you had the two pins place at the same coordinate on top of each other due to the offsets in your pads originally. You can't do this in general without creating all kinds of DRC errors anyway, so you need to move the two pads apart. Placing them 1.0mm apart horizontally should achieve what you really want. Save the file!
6) Now you can go place the new package symbol your board. But again you need two steps to clear left-over junk. You might want to delete and re-place the new package symbol from the library. But even then you won't get the new symbol details. You will have to also go do a Place>Refresh Symbols step to again select the "Shape" list and do a refresh. At that point you should hopefully see the nnew "correct" symbol!
Whew - not that it hasn't been educational, but now I HAVE to go finish a board design I was working on ;-)
Cheers!
Roger
3)