A package for communications between packages - v2
It looks good overall IMO. I won't comment on the bootstrap code as I'm not familiar with your library, but I would change a few things. Inside the closures that you create you could simply return the public object, without defining publik, it looks a bit cleaner. Then I added some annotation and changed the control flow a bit: 

Pub.Reg = (function() {
  var register = {};
  return {
    get: function(key) {
      return register[key];
    },
    set: function(key, value) {
      register[key] = value;
    },
    setMany: function(o) {
      $A.someKey(o, function (val, key) {
        register[key] = val;
      });
    },
    getMany: function() {
      return register;
    }
  };
}());

Pub.Event = (function() {
  var events = {};
  return {
    add: function(name, callback) {
      // A bit more concise
      (events[name] = events[name]||[]).push(callback);
    },
    remove: function(name, callback) {
      // It's faster to set the value to `null`
      // than using the `delete` operator
      // but this depends on your use case;
      // the properties would still show up
      // in a `for..in` loop, but it's fine
      // if you use it merely as a dictionary
      if (!callback) {
        events[name] = null;
        return;
      }
      events[name][callback] = null;
    },
    trigger: function(name) {
      if (events[name]) {
        $A.someIndex(events[name], function (val) {
          val();
        });
      }
    }
  };
}());