public static TileFeatureArg loadFullArg(BitBuffer bitBuffer) {
        int type = bitBuffer.nextBits(3);
        int name = bitBuffer.nextBits(8);
        TileFeatureArg arg =null;
        
        switch ( type ) {
            case SIMPLEARG:
                int size = bitBuffer.nextBits( 5 );
                arg = new SimpleArg( type, name, size );
                break;
            case COORDARG:
                arg = new CoordArg(type, name );
                break;
            case COORDSARG:
                // Cannot create default coords arg, since they need a map.
                arg = new CoordsArg(type);
                break;
            case STRINGARG:
                arg = new StringArg(type, name );
                break;
            default:
                if(LOG.isError()) {
                    LOG.error("TileFeatureArg.loadFullArg()", "invalid type: "+type);
                }
                return null;
        }
        TileMap tmpTileMap2 = new TileMap();
        TileFeature tmpTileMap = new TileFeature(tmpTileMap2);
                
        if(!arg.load(type, bitBuffer, tmpTileMap, null, false )){
            if(LOG.isError()) {
                LOG.error("TileFeatureArg.loadFullArg()", "Unable to load type: "+type);
            }
        }
        
        return arg;
    }